No puedo entender cómo puedo configurar un formulario que creará un nuevo Study
mientras también crea el StudySubject
relacionado y el Facility
. El user_id
, facility_id
y study_subject_id
tienen que estar disponibles para crear el objeto Study
como se puede ver en el modelo de relación de base de datos.Cómo crear objetos anidados en Rails3 usando accepts_nested_attributes_for?
Aquí es la migración de la studies
. Las otras tablas no contienen claves foráneas.
def self.up
create_table :studies do |t|
t.references :user
t.references :facility
t.references :subject
t.date "from"
t.date "till"
t.timestamps
end
add_index :studies, ["user_id", "facility_id", "subject_id"], :unique => true
end
Los modelos definen las siguientes asociaciones.
# user.rb
has_many :studies
# subject.rb
has_many :studies
# facility.rb
has_many :studies
# study
belongs_to :user
belongs_to :subject
belongs_to :facility
Preguntas
1) ¿Son correctos los has_many
y belongs_to
definiciones?
2) ¿Cómo puedo crear un study
usando accepts_nested_attributes_for?
3) Un estudio solo debe pertenecer a un usuario. ¿Debo agregar el user_id
en cualquier otro objeto para almacenar la asociación?
Soy totalmente nuevo en Rails desde 2 semanas de aprendizaje extensivo. Perdón por una pregunta estúpida tal vez.
¿Qué software se usó para dibujar el diagrama? – gmile
@gmile Utilicé http://www.cacoo.com – JJD