Saltar al contenido

Ruby on Rails. ¿Cómo uso el método .build de Active Record en una relación :pertenece a?

Recuerda que en la informática un problema casi siempere puede tener más de una soluciones, de igual modo nosotros aquí compartiremos lo más óptimo y eficiente.

Solución:

Donde se documenta:

De la documentación de la API bajo la asociación has_many en “Module ActiveRecord::Associations::ClassMethods”

colección.construir(attributes = , …) Devuelve uno o más objetos nuevos del tipo de colección que se han instanciado con attributes y vinculado a este objeto a través de un extranjero key, pero aún no se han guardado. Nota: ¡Esto solo funciona si ya existe un objeto asociado, no si es nulo!

La respuesta a la construcción en la dirección opuesta es una sintaxis ligeramente alterada. En tu ejemplo con los perros,

Class Dog
   has_many :tags
   belongs_to :person
end

Class Person
  has_many :dogs
end

d = Dog.new
d.build_person(:attributes => "go", :here => "like normal")

o incluso

t = Tag.new
t.build_dog(:name => "Rover", :breed => "Maltese")

También puede usar create_dog para guardarlo instantáneamente (al igual que el método “crear” correspondiente al que puede llamar en la colección)

¿Cómo son los rieles lo suficientemente inteligentes? Es mágico (o más exactamente, simplemente no lo sé, ¡me encantaría descubrirlo!)

@article = user.articles.build(:title => "MainTitle")
@article.save

Si estás contento con lo expuesto, puedes dejar una noticia acerca de qué le añadirías a este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *