Tôi đã không thể tìm thấy bất kỳ tài liệu nào về phương thức .build trong Rails (tôi hiện đang sử dụng 2.0.2).
Thông qua thử nghiệm, có vẻ như bạn có thể sử dụng phương thức xây dựng để thêm bản ghi vào has_many
mối quan hệ trước khi bản ghi được lưu.
Ví dụ:
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
Điều này sẽ lưu cả con chó và thẻ với các khóa ngoại đúng cách. Điều này dường như không hoạt động trong một belongs_to
mối quan hệ.
d = Dog.new
d.person.build # => nil object on nil.build
Tôi cũng đã thử
d = Dog.new
d.person = Person.new
d.save # => true
Khóa ngoại Dog
không được đặt trong trường hợp này do thực tế là tại thời điểm nó được lưu, người mới không có id vì chưa được lưu.
Câu hỏi của tôi là:
Làm thế nào để xây dựng công việc sao cho Rails đủ thông minh để tìm ra cách lưu các bản ghi theo đúng thứ tự?
Làm thế nào tôi có thể làm điều tương tự trong một
belongs_to
mối quan hệ?Tôi có thể tìm thấy bất kỳ tài liệu về phương pháp này ở đâu?
Cảm ơn bạn
belongs_to
" và "Phương thức được thêm bởihas_one
" . Nhiều tài liệu kỹ thuật có thể được tìm thấy trong các tài liệu API:belongs_to
vàhas_one
.