Плагин Rails Recaptcha корректно возвращает ошибку, сохраняет модель - PullRequest
0 голосов
/ 21 мая 2011

Я использую recaptcha и родословная с моделью комментария:

class Comment < ActiveRecord::Base
  has_ancestry
  attr_accessible :name, :content, :post_id, :parent_id
  belongs_to      :post, :touch => true
end

Но comments_controller.rb # create сохранит комментарий с или без правильногоcaptcha.

def create
  @comment = Comment.create(params[:comment])
  if verify_recaptcha(:model => @comment) && @comment.save
    flash[:notice] = "Replied"
    redirect_to(post_path(:id => @comment.post))
  else
    flash[:error] = "Incorrect word verification. Are you sure you\'re human?"
    redirect_to(post_path(:id => @comment.post))
  end
end

Вот форма:

<%= simple_form_for :comment, :url => { :controller => :comments, :action => "create" } do |f| %>
  <%= f.input :post_id, :required => false, :as => :hidden %>
  <%= f.input :parent_id, :required => false, :as => :hidden %>
  <%= f.input :name, :label => false, :placeholder => "Name (optional)", :required => false %>
  <%= f.input :content, :label => false, :placeholder => "Reply", :as => :text %>
  <%= raw recaptcha_tags -%>
  <%= f.button :submit, "Reply" %>
<% end %>

Что может быть причиной этого?

1 Ответ

1 голос
/ 21 мая 2011

Я не уверен, что это проблема, но я думаю, что вы хотите:

@comment = Comment.new(params[:comment])

С Comment.create ваша модель уже сохранена до вашего if / else.

Посмотрите на ответ здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...