我有一个应用类别'有效','等候名单'和'终止'。这些在视图中作为选择框。
当用户选择“已终止”时,我想将当前日期放入日期时间属性(在同一模型中)。
最好的方法是什么?我尝试了这个,但它不起作用,我不确定它是否适合这样做:
[在控制器中]
def update
@household = Household.find(params[:id])
if @household.status.eql? 'Terminated'
@household.terminated = Date.yesterday()
end
if @household.update_attributes(params[:household])
....
end
end
答案 0 :(得分:2)
在模型中使用after_update回调:
class Household
...
after_update :update_terminated_date
def update_terminated_date
return unless status == 'Terminated'
self.terminated = Date.today() # maybe better Time.now?
self.save!
end
编辑: 也许更好的想法就是摆脱状态列并设置在它真正终止时终止,并且当它不是时为空?