我有一个has_and_belongs_to_many
关系设置。看起来像这样:
have_and_belong_to_many
类别have_and_belongs_to_many
书has_many
书belongs_to
商店我试图显示每个商店中有多少本书属于每个类别。因此,我的观点将显示X商店有200本书,其中80本书是神秘的,60本书是非小说的,等等。
我一直在尝试许多不同的方法来执行此操作,但到目前为止没有成功。我想我从错误的地方开始了。任何方向将不胜感激。
谢谢
顺便说一下,这是Rails 4和psql。
如果您有一个联接books_categories
表,则可以添加一个has_many :categories, through: :books
链接,stores
并categories
通过一个关联books
。
class Store < ActiveRecord::Base
has_many :books
has_many :categories, through: :books
end
那是容易的部分。现在让我们获取每个类别和书籍数量(修订):
def books_per_category
categories.select('categories.id, categories.name, count(books.id) as count').group('categories.id, categories.name').map do |c|
{
name: c.name,
count: c.count
}
end
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句