我在rails控制器中收到ajax数据。
我的:updatedFunds
进入了参数范围,并且我将用户的美元列值设置为等于它的值 - 但它不会持久存在!
def update_dollars
@user = User.find(params[:user_id])
new_dollars = params[:updatedFunds]
@user.dollars = new_dollars.to_i
#store to database?
end
这是最后一步吗?
答案 0 :(得分: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
答案 1 :(得分:0)
有两种方法可行。
@user.update(dollars: new_dollars.to_i)
将更改属性并记录数据库中的更改。
您也可以使用ruby setter方法更改它,然后保存到数据库,例如@agripp的解决方案。两者都使用ActiveRecord,一个Ruby on Rails喜欢的对象关系映射器。如果你想看看它上面的文档真棒。
答案 2 :(得分:0)
您可以使用@ user.save或使用@ user.save!然后会提出一个例外,即保存失败(例如,如果验证失败)