我正在尝试从verify_recaptcha获取布尔结果,该结果由我的应用控制器实现。
来自控制器的代码:
def create
#render plain: params[:student].inspect
@student = Student.new(student_params)
if verify_recaptcha(model: @student) && @student.save
redirect_to @student
else
render 'new'
end
end
HTML代码:
<h1 class="col-md-12">New Student</h1>
<div class="col-md-12">
<%= form_with scope: :student,url: students_path,local: true do |form|%>
<p>
<%= form.label :name %><br>
<%= form.text_field :name%>
</p>
<p>
<%= form.label :student_id,'Student ID' %><br>
<%= form.text_field :student_id%>
</p>
<p>
<%= form.label :course %><br>
<%= form.text_field :course%>
</p>
<%= recaptcha_tags%>
<p>
<%=form.submit 'Create Student'%>
</p>
<%end%>
<%= link_to 'Back', students_path %>
</div>
编辑:这是我想在recaptcha失败时实现的。到目前为止,当Recaptcha失败时,该网页只会重新加载,而不会转到下一页。我要做的是创建一个指示错误数量的警报。事实证明,我无法在HTML中使用verify_recaptcha。有什么建议吗?
如果要verify_recaptcha
在视图中使用的结果,则可以将结果分配给控制器中的某个对象,例如:
def create
@student = Student.new(student_params)
@recaptcha_succeeded = verify_recaptcha(model: @student)
if @recaptcha_succeeded && @student.save
redirect_to @student
else
render 'new'
end
end
现在,在视图中您应该可以参考@recaptcha_succeeded
。
但是,通过将模型传递给verify_recaptcha
,也应该向模型中添加错误,在这种情况下为@student.errors
。该信息也将在视图中提供。recaptcha gem(https://github.com/ambethia/recaptcha)上的文档对此进行了更详细的讨论。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句