Ruby on Rails表关系

时间:2016-03-29 04:17:59

标签: ruby-on-rails ruby activerecord

我有一个product表,其中列出了用户创建的所有产品。在产品表中,country表示产品来源。现在,要使产品国家/地区可见,用户表的merchant status必须为{<1}}。

以下代码用于从产品表中提取国家/地区:

@countries = Product.select(:country).distinct.where("country is not null and country <> ''").pluck(:country)

产品型号:

class Product < ActiveRecord::Base
belongs_to :user
end

用户模型:

class User < ActiveRecord::Base
has_many :products
end

如何修改上述代码,以便在用户表中包含merchant_status?意味着我只需要在用户表中merchant_status = 1列出国家/地区。谢谢!

1 个答案:

答案 0 :(得分:1)

你可以这样试试:

Product.joins(:user).where("country is not null and country <> ''").where(:users => {:merchant_status => 1}).pluck(:country)