2012-11-29 90 views
0

我有一份工作,其中has_many类别 我有一个业务,其中has_many类别。匹配has_many关联的两个模型

目前我只将1个类别分配给工作和业务,但是这会稍后改变,这就是为什么我创建了has_many关联。

分配给企业和工作的类别来自同一个类别表,并且与选择菜单一起选择,目的是匹配它们。

如果有工作,我如何找到与工作类别相匹配的企业。

例如 job = Job.find(1)

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

如果我想找到具有programmer类我怎么能做到这一点列出的所有商家?

我想我可能需要一个连接或包含类似这个,但我不知道这应该如何写完全。

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

回答

1

您的代码几乎是正确的。这应该工作:

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

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

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

感谢您的帮助。这很好! –

相关问题