Ruby on rails 如何编写基于同一行中的另一列自动更新一列的方法

Ruby on rails 如何编写基于同一行中的另一列自动更新一列的方法,ruby-on-rails,Ruby On Rails,我有这样一个用户表: ----------------------------------------------- | name | email | role | card_amount (integer) | ----------------------------------------------- | ... | ... | ... | ... | -----------------------------------------------

我有这样一个用户表:

-----------------------------------------------
| name | email | role | card_amount (integer) |
-----------------------------------------------
| ...  | ...   | ...  | ...                   |
-----------------------------------------------
我想根据card_amount列自动更新role列,具体条件如下:

if @user.card_amount >= 100
然后,角色列将自动更新,如下所示:

@user.role = "buyer"
如何让它自动发生?因此,每当@user.card\u amount>=100时,角色column将具有值“买方”


或者,当我转到rails控制台并将card_amount更新为100时,角色列也将更新为“买家”

您应该在保存前使用
回调。乙二醇

before_save :update_role

def update_role
  if self.card_amount >= 100
    self.role = "buyer"
  end
end

阅读以下内容:

谢谢,将此代码放入何处?应用程序\u控制器或用户\u控制器,或用户模型?将其放在用户模型:)是的,对不起,可以这么说,但我给出的链接中的示例非常清楚,我认为。