我想在公司模型中创建范围,以便我可以使用此行

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和公司之间的连接表)和“公司”表

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

===============>>#1 票数:2 已采纳

请尝试以下方法

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

我想提出的一点是,我认为你所做的事情有点过分,而不仅仅是在公司模型中添加一个company_type列。 如果您没有将CompanyType用于其他任何内容,我建议您添加一列而不是使用两个表。

  ask by muhihsan translate from so

未解决问题?本站智能推荐:

2回复

以多对多关系从连接中获取属性值

我在User和“Link”之间有多对多的关系。 连接模型称为LinkAddress ,除了用于保存其他两个模型的ID之外,还有一个名为address的属性 - 它在创建时收集的信息。 如何在请求方案中访问特定链接的地址属性,如下所示: User.first.links.first.a
1回复

Rails:在多对多关系中与协会和联接表合作

我有一个用户模型和一个具有多对多关联的产品模型,在两个模型中,我都有“ has_and_belongs_to_many” 我知道这使我可以处理如下关系: 和 但是可能存在尚未被任何用户购买的产品,因此该产品将在products表中,但不在user_products连接表中。
1回复

具有相同模型的多对多关系-2个联接表[关闭]

我有一个名为Course的模型。每个课程与其他课程都有两种多对多关系。 所以我需要两个联接表。 我如何在Rails中实现它?
2回复

提取所有关联对象时,以多对多关系包含联接表中的属性

我有这种语言和用户的关系 LanguageUser类具有一个属性级别 。 我想要的是获取用户的所有语言,其中包括(例如LanguageUser类的)level属性(来自LanguageUser类),该属性由example- User.first.languages提取,并且包括具有该语
1回复

在has_many:through关系中f.collection_select的用法

让我解释一下我的问题, 我要做的是显示当前用户为成员的球队(我的模型之一)的下拉列表,以允许他选择他想参加比赛的球队(另一个模型)。 这是我正在考虑做的事情(失败了): 在选定锦标赛的表演视图中 在控制器中显示动作 我希望该表单将比赛ID和用户选择的团队的ID一起发
2回复

RoR-在多对多联接表上创建记录

我有以下型号: 在Client的show视图上,我创建了<%= link_to "New Establishment", new_client_address_path(@client)%> ,以便为客户端创建新的地址记录和新的Establishment。 在Addre
1回复

作用域使用参数并访问多对多关系

您好,我在处理Rails关系时遇到问题。 我有以下关于类的知识,我希望能够将参数传递给方法或范围,并返回任何资源具有等于该参数的乘积。 错误 请帮我看看我在想什么
1回复

如何为多对多关系的某些对象编写作用域?

我需要编写一个范围,该范围将传递用户ID,并将从users表中收集与该用户的所有公司相关的所有用户列表关联。 在User.rb中: 在Employment.rb中: 在Company.rb中: 使用以下方法可以实现: 但是我认为这样写比较耗时。
1回复

Rails连接表记录创建

如果我有一个称为:inventory_items_shopping_lists的HABTM连接表,如何在该表中创建和调用记录? 我没有加入模型。 两种加入的模型是:inventory_items和:shopping_lists 。 我希望用户可以将:inventory_items添加到他们
6回复

Rails 4:具有范围的多个联接

以下ERD包括问题中涉及的课程。 这是3个主要类(监视,链接和故事)的代码。 我想要得到所有监视,包括关键字和今天的故事。 以下查询返回我想要的内容,但包含所有故事。 响应(原始大小) 我不知道如何只获得今天的故事。 如果我在where方法中添加stories