我想在Company模型中创建作用域,这样我就可以使用这一行
Company.customer
,以便选择所有具有客户类型的公司。
Company和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和公司之间的连接表)和"companies"
如何在公司模型中填写:客户范围?
试试下面的
scope :customers, joins(:types).where(company_types: { name: 'customer' })
我想提出的一件事是,我认为你所做的比简单地在公司模型中添加一个company_type
列有点过分。如果您不使用CompanyType用于其他任何内容,我建议您添加一列,而不是使用2个表。