好的我正在尝试创建一个before_save来检查字段是否发生变化并将其返回到像这样的变量中
if @user.update_attributes(params[:user])
send_email_update(@user)
logger.info @changed
在模型中我有一个保存之前
before_save :check_changes
def check_changes
@changed = self.changed
end
有没有办法以任何方式执行此操作...基本上使用更改的字段发回变量,或者是否有关于如何处理此类内容的建议
答案 0 :(得分:1)
使用ActiveModel::Dirty.previous_changes()
params[:user] = { 'name' => 'Bob' }
if @user.update_attributes(params[:user])
send_email_update(@user)
logger.info @user.previous_changes # => { 'name' => ['Bill', 'Bob'] }