Tengo las siguientes clases:¿Se pueden usar atributos anidados en combinación con la herencia?
- Proyecto
- persona
- persona>desarrollador
- persona> Administrador de
En el modelo Project
me han añadido las siguientes declaraciones:
has_and_belongs_to_many :people
accepts_nested_attributes_for :people
y por supuesto las declaraciones apropiadas en la clase Person
. ¿Cómo puedo agregar un Developer
a un Project
a través del método nested_attributes
? El siguiente no funciona:
@p.people_attributes = [{:name => "Epic Beard Man", :type => "Developer"}]
@p.people
=> [#<Person id: nil, name: "Epic Beard Man", type: nil>]
Como se puede ver los atributos type
se establece a nil
en lugar de "Developer"
.
nota: esto funciona para Rails 2.3, ver mi respuesta a continuación para Rails 3 – tokland
@tokland, no había visitado esta pregunta por algún tiempo. He actualizado mi respuesta con una solución de Rails 3. –
genial. Escribiría un simple 'def self.attributes_protected_by_default', pero lo que sea. – tokland