0

我有一个模型,“食谱”。这是模型;

https://github.com/mikeyhogarth/Nomelette/blob/master/app/models/recipe.rb

我可以使用动态查找器来编写这样的代码;

Recipe.find_all_by_name "spaghetti bolognaise"

但以下给了我一个“NoMethodError”

Recipe.find_all_by_category 1

正如您从模型中看到的那样,我不得不恢复为这个功能创建自己的查找器方法。我只是在语法上遗漏了一些东西,还是动态查找器仅适用于特定于给定模型(而不是关联)的列的属性?

4

1 回答 1

3

配方没有名为“类别”的列/属性(因为它是多对多关联),因此find_all_by_category不会生成该方法。

这是你可以做的

recipes = Category.find(1).recipes

Recipe belongs_to :category如果 a和会有所不同Category has_many :recipes。在这种情况下:

recipes = Recipe.find_all_by_category_id(1)

因为 recipes 表有一个名为category_id...

于 2012-02-01T18:46:15.073 回答