0

各レシピの材料をレシピショービューに表示したいのですが、材料は材料と呼ばれる別のモデルにありますが、レシピモデルとbelongs_toの関係があります

たとえば、ユーザー名を呼び出すときは、

@recipe.user.name

これは、属性がレシピモデル内にあるためです。レシピヘルパーに次のようなメソッドがあります。

  def ingredient_names(ingredients)
  if ingredients
  ingredient_array = ingredients.map {|ing| ing.ingredient_name}
  ingredient_array.join("\n")
  end
  end

だから私は電話できると思った

@recipe.ingredient_names

しかし、未定義のメソッドエラーが発生します。

次に、paramsのcomponent_name(列の名前)を渡す必要があると思いました

@recipe.ingredient_names(:ingredient_name)

しかし、それでも未定義のメソッドエラーが発生します

そして私がするとき

<%= @recipe.ingredients(:ingredient_name) %>

これを出力として取得します

[#<Ingredient id: 71, ingredient_name: "Ingredient 1", recipe_id: 56, created_at: "2012-11-29 19:29:25", updated_at: "2012-12-02 16:29:58">, #<Ingredient id: 76, ingredient_name: "ingredient 2", recipe_id: 56, created_at: "2012-12-02 16:29:59", updated_at: "2012-12-02 16:29:59">, #<Ingredient id: 77, ingredient_name: "ingredient 3", recipe_id: 56, created_at: "2012-12-02 16:29:59", updated_at: "2012-12-02 16:29:59">]

したがって、belongs_toとhas_manyの関係がある場合、別のモデルの属性を呼び出すにはどうすればよいですか。簡単な質問だと思いますが、理解できません

ありがとう

4

1 に答える 1

0

解決策を見つけたので、最初にメソッドにアクセスする必要がありました

<%= ingredient_names @recipe.ingredients(:ingredient_name) 
于 2012-12-02T17:12:29.477 に答える