在两个模型上匹配has_many关联

时间:2012-11-29 04:29:26

标签: ruby-on-rails ruby-on-rails-3 activerecord

我的工作有has_many个类别 我的公司有has_many个类别。

目前我只为工作和业务分配1个类别,但这会在以后更改,这就是我创建has_many关联的原因。

分配给企业和作业的类别来自使用选择菜单选择的同一类别表,目的是匹配它们。

如果有工作,我怎样才能找到与工作类别匹配的商家。

例如 job = Job.find(1)

> job.categories.first.name
 => "programmer"

如果我想查找列出programmer类别的所有商家,我该怎么办?

我想我可能需要加入或包含类似的内容,但我不确定应该如何编写。

Business.includes(:categories).where(:categories == ...)

1 个答案:

答案 0 :(得分:1)

您的代码几乎是正确的。这应该有效:

Business.joins(:categories).where(categories: {name: 'programmer'})

或者,如果您有多个类别:

Business.joins(:categories).where(categories: {name: ['programmer', 'other']})