0

我有这个方法可以返回属于该类别的所有类别和分组书籍

def self.user_categories_list
joins(:books).
select('categories.id, categories.name, count(*) AS books_count').
group('categories.id, categories.name').
order('books_count DESC')
end

请原谅我的问题,但我不确定如何加入用户表以按类别获取属于用户的所有书籍,或者我可以通过属于用户的 book_id 来完成吗?

任何帮助表示赞赏

谢谢

4

1 回答 1

1

我认为你应该有一个 where 子句:

def self.user_categories_list(user)
  joins(:books).
  where('books.user_id = ?', user.try(:id) || user).
  select('categories.id, categories.name, count(*) AS books_count').
  group('categories.id, categories.name').
  order('books_count DESC')
end

注意:此代码假定您的 Book 模型user_id在其表中具有该属性。

于 2013-01-12T06:11:04.577 回答