5

之前已经部分询问过这个问题,我发现了以下关于如何一次设置类对象属性的剪辑,但由于批量分配保护,Rails 不可能。(例如你不能 Object.attributes={})

有没有一种将属性从一个类合并到另一个类的好方法?

object1.attributes = object2.attributes.inject({}){ |h,(k,v)|
  h[k]=v if ObjectModel.column_names.include?(k); h
}

谢谢。

4

1 回答 1

14

将assign_attributes与选项一起使用。:without_protection

attributes = object2.attributes.select do |attr, value|
  ObjectModel.column_names.include?(attr.to_s)
end
object1.assign_attributes(attributes, :without_protection => true)
于 2012-04-11T20:00:36.887 回答