簡體   English   中英

過濾rails中的歸屬項

[英]Filter belongs_to items in rails

我有has_many :books Bookshelf模型,我需要按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|

由於您具有清晰的層次結構,因此應該首先查找書架,然后獲取書集

BookShelf.where(category_id: 5).books

使用joins過濾記錄。 嘗試這個

@books = Book.joins(:bookshelf).where('bookshelves.category_id =?', 5)

我希望這會有所幫助。

@books = Book.joins(:bookshelves).where(bookshelf: { category_id: 5 })

如果您已經有@books對象並想對其進行查詢,則可以使用,

@books.where('bookshelf_id in (?)', Bookshelf.where(category_id: 5).pluck(:id))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM