Система ранжирования не обновляет запись в БД - PullRequest
0 голосов
/ 25 августа 2011

Я строю простую систему ранжирования.Когда за комментарий проголосуют, пользователь rank получает повышение.@comment.rating обновляется и сохраняется как следует.Однако @comment.user.rank нет.Он не сообщает об ошибках, просто никогда не пытается обновить или сохранить его.

Этот метод в моем контроллере комментариев:

def increment
  @comment = Comment.find(params[:id])
  @comment.rating += 1
  @comment.user.rank += User::RANK_VALUES["comment_plus"]
  if @comment.save
    flash[:notice] = "Voted up"
    redirect_to(:back)
  else
    flash[:notice] = "Error"
    redirect_to(:back)
  end
end

Этот метод вызывается с помощью этого link_to:

<%= link_to "+", :controller => "comments", :action => "increment", :id => comment.id %>

А это данные журнала при запуске метода:

Started GET "/comments/increment/12" for 127.0.0.1 at Wed Aug 24 22:35:39 -0400 2011
Processing by CommentsController#increment as HTML
Parameters: {"id"=>"12"}
Comment Load (0.2ms)  SELECT "comments".* FROM "comments" WHERE "comments"."id" = 12 LIMIT 1
User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 3 LIMIT 1
AREL (0.2ms)  UPDATE "comments" SET "rating" = 9, "updated_at" = '2011-08-25 02:35:39.315081' WHERE "comments"."id" = 12
Redirected to http://localhost:3000/photos/6

Есть какие-нибудь мысли о том, почему обновление @ comment.user.rank игнорируется?ПРИМЕЧАНИЕ: хэш, который я передаю, должен быть в порядке;Я также пытался передать прямое целое число с тем же результатом.

1 Ответ

2 голосов
/ 25 августа 2011

Попробуйте также позвонить @comment.user.save!.Вы сохраняете комментарий, но не связанную модель.

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