如何确定记录是刚刚创建还是更新在After_Save中的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)

#new_record?函数确定记录是否已保存。但在after_save中总是假的。有没有办法确定记录是新创建的记录还是旧的记录?

我希望不要使用另一个回调函数。

提问于
用户回答回答于

我想用这个after_save回调。

一个更简单的解决方案是使用id_changed?因为它不会改变update甚至created_at_changed?如果存在时间戳列。

用户回答回答于

你必须自己动手。

在你的模型类中:

def before_save
  @was_a_new_record = new_record?
  return true
end

def after_save
  if @was_a_new_record
    ...
  end
end

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问12 回答
  • 四无君

    0 粉丝0 提问3 回答
  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问2 回答
  • o o

    3 粉丝490 提问2 回答

扫码关注云+社区

领取腾讯云代金券