在Ruby on Rails HTML文件中检查verify_recaptcha的结果

cswannabe

我正在尝试从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。有什么建议吗?

迈克·K

如果要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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章