我想在公司模型中创建范围,以便我可以使用此行
Company.customer
为了选择所有拥有客户类型的公司。
公司与CompanyType之间的关系是多对多的。
公司:
class Company < ActiveRecord::Base
attr_accessible :description, :name, :website, type_ids
has_and_belongs_to_many :types, :class_name => "CompanyType"
#scope :customer, where()
end
CompanyType:
class CompanyType < ActiveRecord::Base
attr_accessible :name
has_and_belongs_to_many :companies
end
对于数据库中的表,我有“company_types”表,“company_types_companies”(company_types和公司之间的连接表)和“公司”
如何填写公司模型中的客户范围?
答案 0 :(得分:2)
尝试以下
scope :customers, joins(:types).where(company_types: { name: 'customer' })
我想提出的一点是,我认为你所做的事情有点过分,而不仅仅是在公司模型中添加company_type
列。如果您没有使用CompanyType,我建议您添加一列而不是使用两个表。