2011-08-25 14 views
0

나는 간단한 순위 시스템을 구축 중입니다. 의견을 투표하면 사용자의 rank이 부스트됩니다. @comment.rating은 업데이트 된대로 저장됩니다. 그러나 @comment.user.rank은 그렇지 않습니다. 오류를보고하지 않으며 업데이트하거나 저장하려고 시도하지 않습니다.랭킹 시스템이 db 레코드를 업데이 트하지 않습니다

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 업데이트가 무시되는 이유에 대한 의견이 있으십니까? 참고 : 전달할 해시는 정상적으로 처리되어야합니다. 나는 또한 똑같은 결과를 가진 곧은 정수를 전달하려고 시도했다.

답변

2

@comment.user.save!도 호출 해보세요. 주석을 저장하고 있지만 연관된 모델은 저장하지 않습니다.

+0

오른쪽! 아 ... 고마워! 나는 그것이 가능한 한 빨리 받아 들일 것이다. –

+0

문제가 없습니다! 다행스럽게 도울 수있어! – MrDanA

관련 문제