J'ai été incapable de trouver une documentation sur l' .la méthode build dans les Rails (je suis actuellement en utilisant 2.0.2).
Par le biais de l'expérimentation, il semble que vous pouvez utiliser la méthode build pour ajouter un enregistrement dans une has_many
relation avant d'enregistrement a été enregistré.
Par exemple:
class Dog < ActiveRecord::Base
has_many :tags
belongs_to :person
end
class Person < ActiveRecord::Base
has_many :dogs
end
# rails c
d = Dog.new
d.tags.build(:number => "123456")
d.save # => true
Cela permettra d'économiser à la fois du chien et de la balise avec les clés étrangères correctement. Cela ne semble pas fonctionner dans un belongs_to
relation.
d = Dog.new
d.person.build # => nil object on nil.build
J'ai aussi essayé
d = Dog.new
d.person = Person.new
d.save # => true
La clé étrangère en Dog
n'est pas définie dans ce cas, en raison du fait qu'au moment où il est enregistré, la personne n'a pas un id parce qu'il n'a pas encore été enregistrée.
Mes questions sont les suivantes:
Comment intégrer le travail de sorte que les Rails sont assez intelligents pour comprendre comment sauvegarder les enregistrements dans l'ordre?
Comment puis-je faire la même chose en
belongs_to
relation?Où puis-je trouver toute la documentation sur cette méthode?
Merci