Ruby on rails Ruby更新属性与数据库属性之和
我有一个包含三个值的数据库:Ruby on rails Ruby更新属性与数据库属性之和,ruby-on-rails,ruby,database,attributes,sum,Ruby On Rails,Ruby,Database,Attributes,Sum,我有一个包含三个值的数据库:tips\u value、profile\u value和value。对于数据库中的每个条目,每当我更新条目时,我都希望取tips\u value和profile\u value的总和,并将其分配给value,但它不起作用 以下是我的更新功能: def update @affinity = Affinity.find(params[:id]) if @affinity.update_attributes(params[:affinity])
tips\u value
、profile\u value
和value
。对于数据库中的每个条目,每当我更新条目时,我都希望取tips\u value
和profile\u value
的总和,并将其分配给value
,但它不起作用
以下是我的更新功能:
def update
@affinity = Affinity.find(params[:id])
if @affinity.update_attributes(params[:affinity])
update_column(@affinity.value, @affinity.tips_value + @affinity.profile_value)
redirect_to @affinity
else
render 'edit'
end
end
我如何才能做到这一点?最好在更新之前进行
,这样可以在任何地方更改提示值或配置文件值时,随时更新数据库中的值
在关联模型中添加
before_update :sync_value_amount
private
def sync_value_amount
self.value = self.tips_value + self.profile_value
end
您可以在模型中进行更新前回拨
比如:
before_update :set_value
private
def set_value
self.value= @affinity.tips_value + @affinity.profile_value
end