我的Bookshelf
模型has_many :books
,我需要按bookshelf.category_id过滤书籍
books: id, bookshelf_id
belongs_to: bookshelf
bookshelf: id, category_id
has_many :books
我想到的例子但它不起作用:
- @books.where(bookshelf: {category_id: 5 }).each do |book|
答案 0 :(得分:0)
由于你有一个清晰的层次结构,你应该首先查看书架,然后获取书籍收藏
BookShelf.where(category_id: 5).books
答案 1 :(得分:0)
使用joins
过滤记录。试试这个
@books = Book.joins(:bookshelf).where('bookshelves.category_id =?', 5)
我希望这会有所帮助。
答案 2 :(得分:0)
setClientAccountFromJSON("somestring or stringvar");
答案 3 :(得分:-1)
如果您已经拥有@books对象并想要对其进行查询,那么您可以使用
@books.where('bookshelf_id in (?)', Bookshelf.where(category_id: 5).pluck(:id))