Rails:数据在保存前未使用 assign_attributes 保存
Rails: Data not getting saved with assign_attributes in before save
我正在 before_save 中进行如下更新:
has_many :things
before_save :set_things
def set_things
things = all_things.map do |t|
t.assign_attributes(attrs)
t
end
self.things = things
end
当我将对象另存为 t.save! 时,对象更新了属性,但一旦重新加载它就会恢复到旧值,因此更新不会持续。如果我使用 t.update_attributes 它工作正常,但是 assign_attributes 不应该在保存时继续存在吗?为什么它不起作用?
这已经解决了。因为,我正在更新现有记录,所以 assign_attribute 没有更新属性。只有新记录将根据此更新:
Rails: Why “collection=” doesn't update records with existing id?
我正在 before_save 中进行如下更新:
has_many :things
before_save :set_things
def set_things
things = all_things.map do |t|
t.assign_attributes(attrs)
t
end
self.things = things
end
当我将对象另存为 t.save! 时,对象更新了属性,但一旦重新加载它就会恢复到旧值,因此更新不会持续。如果我使用 t.update_attributes 它工作正常,但是 assign_attributes 不应该在保存时继续存在吗?为什么它不起作用?
这已经解决了。因为,我正在更新现有记录,所以 assign_attribute 没有更新属性。只有新记录将根据此更新: Rails: Why “collection=” doesn't update records with existing id?