如果我遇到以下情况,你好有办法在ruby中搜索整个数组。
型号: 新政, 书, 分类
class Book < ActiveRecord::Base
has_and_belongs_to_many :categories
has_and_belongs_to_many :deals
end
class Category < ActiveRecord::Base
has_and_belongs_to_many :books
end
class Deal < ActiveRecord::Base
has_and_belongs_to_many :books
end
因此,如果我在控制台中执行以下操作:
Deals.first.books
- &GT;我得到了属于第一笔交易的所有书籍。
但是现在我想从第一笔交易中获得所有书籍,例如2个特殊类别。但是这样的事情不起作用:
Deal.first.books.all.categories.where(:name=>"Bestseller")
如果我执行以下操作:
Deal.first.books.first.categories.where(:name=>"Bestseller")
它有效但显然只有第一本书才有这个类别。如何从第一笔交易中获得所有具有畅销书类别甚至2类别的书籍。
每个提示或建议都将受到赞赏。谢谢!
答案 0 :(得分:0)
单身
Deal.includes(books: :categories).where(categories: {name: "Bestseller"}).books
单人/多人
Deal.includes(books: :categories).where(categories:
{name: ["Bestseller","Hot Stuff"]}).books