2012-11-11 30 views
0

我现在有通过在我的食谱模型列的搜索搜索表单,我现在想搜索相关模型轨道3

所以到目前为止我的代码通过关联的模型藏汉被叫国家进行搜索,搜索名称列是

q = "%#{params[:search]}%" 

@countrysearch = Recipe.where("dish_name LIKE ? OR country_of_origin LIKE ? OR difficulty LIKE ? OR preperation_time LIKE?", q, q, q, q) 

我在说,我需要做的国家模型加入正确吗?如果是这样,我不确定这个语法,没有人知道哪些资源要查看或执行此查询吗?

感谢

回答

1

您可以使用连接,或急于负荷的关联,并在其指定的条件:

Recipe.includes(:country).where("dish_name like ? OR countries.name like ?", ...) 

this guide“指定的渴望加载协会的条件”一节。

+0

感谢answer.can我要问为什么countries.name而非country.name? – Richlewis

+0

因为它基于表名,默认情况下它是复数形式。如果您的表格被命名为其他名称,则必须相应地进行编辑。首先出现的原因是为了避免连接表中存在多个“名称”字段时出现错误。 – Thilo