Hãy tưởng tượng tình huống sau đây:thực hành tốt nhất về sản phẩm nào belongs_to hiệp hội
Tôi có một mô hình dog
và một mô hình house
. Một con chó có thể thuộc về một ngôi nhà, và một ngôi nhà có thể có nhiều con chó, vì vậy:
Class Dog < ActiveRecord::Base
belongs_to :house
end
Class House < ActiveRecord::Base
has_many :dogs
end
Bây giờ, hãy tưởng tượng rằng tôi cũng muốn tạo chó mà không có một ngôi nhà. Họ không thuộc về nhà. Tôi vẫn có thể sử dụng cấu trúc mối quan hệ đó và chỉ cần không thông báo cho :house_id
khi tạo cấu trúc đó?
Có thực tiễn nào tốt hơn không?
Obs .: Tôi đã sử dụng sự tương tự này để đơn giản hóa vấn đề của mình, nhưng tình hình thực tế của tôi là: Tôi có một mô hình mà người dùng có thể tạo ra các phiên bản của nó. Anh ta cũng có thể tạo ra các bộ sưu tập của những trường hợp đó, nhưng anh ta có thể để lại một cá thể bên ngoài một bộ sưu tập.
yes..you có thể để lại '' house_id' null' và khi bạn '@ dog.house' nó sẽ trở lại 'nil' và do đó bạn có thể kiểm tra xem nó như' nếu @dog. house' và như vậy .. – rubyprince
Để đảm bảo điều này hoạt động, trong cơ sở dữ liệu của bạn, bảng Dog không được có phần rỗng của 't.integer" house_id ",: null => false'. – Ashitaka