确定ActiveRecord对象是否为新

jrh*_*cks 209 activerecord ruby-on-rails

如何检查ActiveRecord对象是新对象还是已经存在?

Dam*_*ien 341

ActiveRecord对象生命周期:

1. 新纪录

item = Item.new
item.new_record? #=> true
Run Code Online (Sandbox Code Playgroud)

2. 坚持

item.save
item.persisted? #=> true
Run Code Online (Sandbox Code Playgroud)

3. 改变

item.name = "other"
item.changed? #=> true
Run Code Online (Sandbox Code Playgroud)

4. 销毁

item.destroy
item.destroyed? #=> true
Run Code Online (Sandbox Code Playgroud)

  • 更好的答案是它完成了生命周期. (25认同)
  • 我想将 `item.previously_new_record?` 和 `item.previously_persisted?` 添加到列表中 (4认同)