在2个连接中搜索ruby中的整个数组

时间:2014-02-08 21:56:55

标签: ruby-on-rails ruby arrays jointable

如果我遇到以下情况,你好有办法在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类别的书籍。

每个提示或建议都将受到赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

单身

Deal.includes(books: :categories).where(categories: {name: "Bestseller"}).books

单人/多人

Deal.includes(books: :categories).where(categories: 
    {name: ["Bestseller","Hot Stuff"]}).books