1

我想在公司模型中创建范围,这样我就可以使用这条线

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

公司类型:

class CompanyType < ActiveRecord::Base
  attr_accessible :name
  has_and_belongs_to_many :companies
end

对于数据库中的表,我有表“company_types”、“company_types_companies”(company_types 和公司之间的连接表)和“companies”

如何在公司模型中填写:客户范围?

4

1 回答 1

2

尝试以下

scope :customers, joins(:types).where(company_types: { name: 'customer' })

我想提出的一件事是,我认为您所做的比简单地company_type在公司模型中添加一列有点矫枉过正。如果您没有将 CompanyType 用于其他任何事情,我建议您添加一列而不是使用 2 个表。

于 2013-04-16T03:33:57.663 回答