Tôi cần đảm bảo rằng khi một sản phẩm được tạo, nó có ít nhất một loại. Tôi có thể làm điều này với một lớp xác nhận tùy chỉnh, nhưng tôi đã hy vọng có một cách tiêu chuẩn hơn để làm điều đó.Xác nhận rằng đối tượng có một hoặc nhiều đối tượng liên kết
class Product < ActiveRecord::Base
has_many :product_categories
has_many :categories, :through => :product_categories #must have at least 1
end
class Category < ActiveRecord::Base
has_many :product_categories
has_many :products, :through => :product_categories
end
class ProductCategory < ActiveRecord::Base
belongs_to :product
belongs_to :category
end
1. sản phẩm + danh mục là cơ hội tuyệt vời để đáp ứng 'has_and_belongs_to_many' http://api.rubyonrails.org/classes/ActiveRecor d) Các liên kết/ClassMethods.html # method-i-has_and_belongs_to_many. Bạn không cần tham gia mô hình trừ khi bạn không muốn lưu trữ các thuộc tính bổ sung cùng với liên kết. 2. Bạn có thể sử dụng câu trả lời hàng đầu từ câu hỏi này http://stackoverflow.com/questions/6429389/how-can-i-make-sure-my-has-many-will-have-a-size-of-at- ít nhất-2 đoán những gì bạn phải thay đổi :) – jibiel