Search code examples
ruby-on-railsrubyrecaptcha

Duplicate error message for reCaptcha in Ruby on Rails


For some odd reason, my reCaptcha errors for failed verification keeps duplicating, like this:

enter image description here

Here's my controller code:

def create
        #render plain: params[:student].inspect
        @student = Student.new(student_params)
        @recaptcha_succeeded = verify_recaptcha(model: @student)
        if verify_recaptcha(model: @student) && @student.save
            redirect_to @student
        else
            render 'new'
        end

Here's the view html code:

<%if @recaptcha_succeeded==false%>
                  <div class="col-md-12">
                    <h5><%=@student.errors.size%> error prohibited this student from being saved:</h5>
                    <%@student.errors.full_messages.each do |message|%>
                      <li><%=message%></li>
                    <%end%>
                  </div>
              <%end%>

Any tips on why it is so?


Solution

  • You are calling verify_recaptcha method twice and hence those two errors.You can avoid calling twice by using the result of verify_recaptcha stored in @recaptcha_succeeded variable.

    def create
            #render plain: params[:student].inspect
            @student = Student.new(student_params)
            @recaptcha_succeeded = verify_recaptcha(model: @student)
            if @recaptch_succeeded && @student.save
                redirect_to @student
            else
                render 'new'
            end
    end