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?