我有以下型号:
class Label < ActiveRecord::Base
has_many :releases
end
class Release < ActiveRecord::Base
belongs_to :label
has_many :products
has_and_belongs_to_many :tracks
def self.releases_count
self.count(:all)
end
end
class Product < ActiveRecord::Base
belongs_to :release
has_many :releases_tracks, :through => :release, :source => :tracks
has_and_belongs_to_many :tracks
def self.products_count
self.count(:all)
end
end
在我的标签/索引视图中,我可以使用以下方式显示发布的计数:
<%= label.releases.releases_count %>
我正在尝试使用以下产品做同样的事情:
<%= label.releases.products.products_count %>
但是得到NoMethodError:
undefined method `products' for #<Label:0x10ff59690>
有什么想法吗?
我还有许多我想要执行的其他聚合(Track Counts等),因此我会非常感谢您对我出错的地方提供一些指导。
答案 0 :(得分:3)
您需要定义生产/标签关联
class Label < ActiveRecord::Base
has_many :releases
has_many :products, :through => :releases
end