【发布时间】:2014-03-06 07:30:21
【问题描述】:
你好,如果我有以下情况,有没有办法在 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
-> 我得到了属于第一笔交易的所有书籍。
但现在我想从第一笔交易中获得所有书籍,例如 2 个特殊类别。但是这样的事情不起作用:
Deal.first.books.all.categories.where(:name=>"Bestseller")
如果我执行以下操作:
Deal.first.books.first.categories.where(:name=>"Bestseller")
它有效,但显然只有当第一本书有这个类别时才会给我。如何从第一笔交易中获得所有畅销书类别甚至 2 个类别的书籍。
每一个提示或建议将不胜感激。谢谢!
【问题讨论】:
-
@bjhaid,认为你需要
where(categories: { name: "Bestseller" }) -
这个
Deal.includes(:books).includes(:categories).where(categories: { name: "Bestseller" }).first.books
标签: ruby-on-rails ruby arrays jointable