Tôi không biết tại sao tôi không thể hình dung ra điều này, tôi nghĩ nó khá đơn giản. Tôi có hai mô hình (xem bên dưới). Tôi đang cố gắng đưa ra một phạm vi được đặt tên cho SupplierCategory có thể tìm thấy tất cả (các) Nhà cung cấp (bao gồm: nhà cung cấp) mà Nhà cung cấp liên quan không có sản phẩm nào.ActiveRecord tìm thấy tất cả các bậc phụ huynh có con liên quan
Tôi đã thử một thẳng lên tham gia, named_scope :with_suppliers, :joins => :suppliers
mà mang lại cho tôi chỉ mục với các nhà cung cấp, nhưng nó mang lại cho tôi mỗi hạng mục liệt kê riêng, vì vậy nếu một thể loại có 2 nhà cung cấp, tôi nhận được các loại gấp đôi trong mảng trả về:
Hiện nay tôi đang sử dụng:
named_scope :with_suppliers, :include => :suppliers
và sau đó theo quan điểm của tôi, tôi đang sử dụng:
<%= render :partial => 'category', :collection => @categories.find_all{|c| !c.suppliers.empty? } %>
Không chính xác hùng hồn nhưng illustrat es những gì tôi đang cố gắng đạt được.
Lớp Định nghĩa
class SupplierCategory < AR
has_many :suppliers, :order => "name"
end
class Supplier < AR
belongs_to :supplier
end
Trong lớp 'Subbplier' bạn có nghĩa là' thuộc_to: supplier_category'? – klew