ฉันไม่พบเอกสารใด ๆ เกี่ยวกับวิธีการสร้างใน Rails (ขณะนี้ฉันใช้ 2.0.2)
ดูเหมือนว่าคุณสามารถใช้วิธีการสร้างเพื่อเพิ่มระเบียนลงในhas_many
ความสัมพันธ์ก่อนที่จะบันทึกระเบียนใดก็ได้
ตัวอย่างเช่น:
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
สิ่งนี้จะช่วยทั้งสุนัขและแท็กด้วยปุ่มต่างประเทศอย่างเหมาะสม สิ่งนี้ดูเหมือนจะไม่ทำงานในbelongs_to
ความสัมพันธ์
d = Dog.new
d.person.build # => nil object on nil.build
ฉันได้ลองแล้ว
d = Dog.new
d.person = Person.new
d.save # => true
Dog
ไม่ได้ตั้งค่าคีย์ต่างประเทศในกรณีนี้เนื่องจากในขณะนั้นถูกบันทึกบุคคลใหม่จะไม่มีรหัสเนื่องจากยังไม่ได้บันทึก
คำถามของฉันคือ:
การสร้างจะทำงานอย่างไรเพื่อให้ Rails ฉลาดพอที่จะคิดวิธีบันทึกบันทึกในลำดับที่ถูกต้อง
ฉันจะทำสิ่งเดียวกันใน
belongs_to
ความสัมพันธ์ได้อย่างไรฉันจะหาเอกสารเกี่ยวกับวิธีนี้ได้ที่ไหน
ขอบคุณ
belongs_to
"และ"วิธีการที่เพิ่มขึ้นโดยhas_one
" เอกสารทางเทคนิคเพิ่มเติมสามารถพบได้ในเอกสาร API: และbelongs_to
has_one