我在创建用户表单中使用recapcha gem。该表单由ajax使用 data-remote = true 属性提交,然后呈现 create.js.erb 模板。
想法是在提交表格之后:
问题在于,当出现错误时(例如,错误的重新访问代码) - 不会呈现recaptcha输入字段。
目前,在 create.js.erb 文件中,我只有以下一行:
$('#b-register').html('<%=j render partial: 'security_users/sign_in' %>');
为什么@securirty_user对象在我不使用本地时会自动传回部分? 当我渲染出与我最初使用的错误相同的部分错误时,为什么缺少重新接收输入?
答案 0 :(得分:0)
如果您希望使用使用ajax的recapthca进行“登录”表单,则不应重新呈现该表单。
您应该做的是以下内容:
使 create.js.erb 视图处理ajax请求,并在控制器中添加 format.js 。
在新视图中实例化包含如下错误的JavaScript对象:
var current_errors =&lt;%= raw @ security_user.errors.to_json%&gt ;;
然后您可以随意处理错误 - 添加显示错误文本或其他错误的新元素,但如果只有一个错误:
清除密码字段
像这样重新加载recaptcha:
Recaptcha.reload();