之前已经部分询问过这个问题,我发现了以下关于如何一次设置类对象属性的剪辑,但由于批量分配保护,Rails 不可能。(例如你不能 Object.attributes={})
有没有一种将属性从一个类合并到另一个类的好方法?
object1.attributes = object2.attributes.inject({}){ |h,(k,v)|
h[k]=v if ObjectModel.column_names.include?(k); h
}
谢谢。
之前已经部分询问过这个问题,我发现了以下关于如何一次设置类对象属性的剪辑,但由于批量分配保护,Rails 不可能。(例如你不能 Object.attributes={})
有没有一种将属性从一个类合并到另一个类的好方法?
object1.attributes = object2.attributes.inject({}){ |h,(k,v)|
h[k]=v if ObjectModel.column_names.include?(k); h
}
谢谢。
将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)