2014-07-14 1 views
2

레일 컨트롤러에 아약스 데이터를 수신하고 있습니다. 내 :updatedFunds이 params 내에 있으며 사용자의 달러 열 값을 그 값과 같게 설정했습니다. 그러나 지속되지는 않습니다!레일즈 컨트롤러에서 어떻게 데이터를 데이터베이스에 저장합니까?

def update_dollars 
    @user = User.find(params[:user_id]) 
    new_dollars = params[:updatedFunds] 
    @user.dollars = new_dollars.to_i 

    #store to database? 
end 

뭐죠 여기 마지막 단계?

+3

@ user.save를 사용하십시오 – Monideep

답변

6
def update_dollars 
    @user = User.find(params[:user_id]) 
    new_dollars = params[:updatedFunds] 
    @user.dollars = new_dollars.to_i 

    @user.save #store to database! 
end 
+0

이 코드가 작동하는 이유를 설명하십시오 – rayryeng

0

두 가지 방법이 있습니다.

@user.update(dollars: new_dollars.to_i) 

은 속성을 변경하고 데이터베이스에 변경 사항을 기록합니다.

또한 루비 설정 메소드를 사용하여 변경할 수 있으며 @agripp의 솔루션과 같이 데이터베이스에 저장할 수 있습니다. 둘 다 ActiveRecord, Ruby on Rails가 단지 좋아하는 객체 - 관계형 매퍼를 사용합니다. 당신이보고 싶다면 그것에 관한 문서는 굉장합니다.

0

@ user.save를 사용하거나 @ user.save를 사용할 수 있습니다! 그런 다음 예외가 발생하여 저장에 실패했습니다 (예 : 유효성 검사가 실패한 경우)