根据关系搜索实体

时间:2014-10-24 16:43:43

标签: ruby-on-rails ruby-on-rails-4

我在产品和类别之间有一个简单的关系,我想按类别过滤产品。

这就是我尝试这样做的方式:

def报告     @products = Product.find_by category_id:params [:category_ids]     render:action => '报告'   端

但它没有用。它正在产品表中搜索category_id。如何在关系表中查看?

这是我的Product型号:

class Product < ActiveRecord::Base
    has_and_belongs_to_many :categories, :join_table => 'products_categories'
    accepts_nested_attributes_for :categories
end

我想不出这样做的方法,如果我应该只是连接查询或者是否有一种更简单的方法来使用Rails。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我相信你应该能够做到

Product.includes(:categories).where(categories: { id: params[:category_ids] })

并得到你想要的答案。