我想更新属性然后检查信息是否改变
您可以简单地将此代码传递给现有 rails + mongoid 项目中的 rails console
class TestModel
include Mongoid::Document
include Mongoid::Timestamps
field :name, type: String
end
test = TestModel.new({:name => "name 1"})
test.save()
=> true
test
=> created_at: 2012-11-14 13:48:26 UTC, updated_at: 2012-11-14 13:48:26 UTC
test.changed?
=> false
test.name_changed?
=> false
test.update_attributes({:name => "name 2"})
=> true
test.changed?
=> false
test.name_changed?
=> false
test
=> created_at: 2012-11-14 13:48:26 UTC, updated_at: 2012-11-14 13:49:23 UTC
我做错了什么还是这是一个错误?
最佳答案
这完全符合逻辑。
脏方法旨在用于检查对象在保存之前是否已更改。根据定义,持久对象没有待处理的更改。
你应该这样做:
test.assign_attributes(attributes)
test.changed? #=> true
test.save
关于ruby-on-rails - mongoid update_attributes 改变了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13380250/