【发布时间】:2016-01-15 06:48:28
【问题描述】:
我在使用 .joins 和 .where 时遇到问题
在我的应用中,用户可以使用他们的成分作为参数来搜索食谱。
例如,如果您有米饭和西红柿,它会显示所有含有米饭和西红柿的食谱(但如果食谱使用第三种成分,则不会显示)。
无论如何,我有配方和成分模型、配方模型和一个名为 has_ingredient 的连接表模型。
模型基本上是这样的:
recipe --< has_ingredient >-- ingredient
当我创建食谱时一切正常,它实际上将食谱的 id 和成分的 id 存储在 has_ingredient 表中。
无论如何,为了搜索,我为它创建了一个单独的模型,我实际上可以选择成分并通过 get 方法将它们发送到控制器,但是我遇到了这个问题
@result=Recipe.joins(:has_ingredient).where(has_ingredient: {ing_id: params[:ingredients]})
我想在@result 中存储食谱列表,但是当我尝试搜索时出现以下错误
Association named 'has_ingredient' was not found on Recipe; perhaps you misspelled it?
我不确定是什么问题,而且我很难使用 RoR
【问题讨论】:
-
has_ingredient是什么,如果是模型,名字应该是名词才能说清楚,顺便说一句,你的错误可能在has_ingredient,可能是has_ingredients?
标签: ruby-on-rails ruby activerecord