在 Rails HTML 文件的 Ruby 中检查 verify_recaptcha 的结果
Check for result of verify_recaptcha in Ruby on Rails HTML file
我正在尝试从 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) 上的文档对此进行了更详细的讨论。
我正在尝试从 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 失败时实现的目标。
如果你想在视图中使用 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) 上的文档对此进行了更详细的讨论。