Это было задано частично раньше, и я нашел следующее clip о том, как установить атрибуты объекта класса одновременно, но это невозможно с помощью Rails из-за защиты массового присвоения. (например, вы не можете Object.attributes = {})Хороший способ объединить/скопировать атрибуты между двумя классами ActiveRecord?
Есть ли хороший способ объединить атрибуты из одного класса в другой?
object1.attributes = object2.attributes.inject({}){ |h,(k,v)|
h[k]=v if ObjectModel.column_names.include?(k); h
}
Спасибо.
Я не уверен, что понял вопрос, то вы можете с уверенностью сказать, 'object1.attributes = object2.attributes', но только доступные атрибуты на object1 будут установлены из атрибутов Object2, вы просто пытаетесь для обхода attr_accessible (защита массового присвоения)? –
На самом деле у меня есть 3 атрибута, которые я хочу скопировать как attr_accessible, но они фактически не копируются. Я использую RubyMine для отладки объектов, и даже после предполагаемой успешной копии они все еще не настроены на значения второго объекта sttribute. – garlicman