Ruby on rails 在RubyonRails HTML文件中检查verify_recaptcha的结果
我正试图从我的应用程序控制器实现的verify_recaptcha中获取布尔结果 来自控制器的代码:Ruby on rails 在RubyonRails HTML文件中检查verify_recaptcha的结果,ruby-on-rails,ruby,recaptcha,Ruby On Rails,Ruby,Recaptcha,我正试图从我的应用程序控制器实现的verify_recaptcha中获取布尔结果 来自控制器的代码: def create #render plain: params[:student].inspect @student = Student.new(student_params) if verify_recaptcha(model: @student) && @student.save redirect_t
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。有什么建议吗?如果要在视图中使用
验证\u 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\u successed
但是,通过将模型传递给
verify\u recaptcha
,也应将错误添加到模型中,在本例中为@student.errors
。该信息也将在视图中提供。recaptcha gem()上的文档对此进行了更详细的讨论。如果您想在视图中使用验证\u 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\u successed
但是,通过将模型传递给
verify\u recaptcha
,也应将错误添加到模型中,在本例中为@student.errors
。该信息也将在视图中提供。recaptcha gem()上的文档对此进行了更详细的讨论。现在可以使用了,我很粗心,没有意识到object.errors是一个数组。然而,似乎出现了一个新的bug。错误消息“reCaptcha验证失败,请重试”重复两次。它现在可以工作了,我很粗心,没有意识到object.errors是一个数组。然而,似乎出现了一个新的bug。错误消息“reCaptcha验证失败,请重试”重复两次。