Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在RubyonRails HTML文件中检查verify_recaptcha的结果_Ruby On Rails_Ruby_Recaptcha - Fatal编程技术网

Ruby on rails 在RubyonRails HTML文件中检查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

我正试图从我的应用程序控制器实现的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。有什么建议吗?

如果要在视图中使用
验证\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验证失败,请重试”重复两次。