从关联的模型轨道访问属性3

时间:2012-12-02 16:41:00

标签: ruby-on-rails-3 model

我想在食谱展示视图中显示每个食谱的成分,成分在一个名为成分的单独模型中,但与食谱模型有一个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 ingredient_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时,如何调用另一个模型的属性。我猜的简单问题但是无法弄清楚

感谢

1 个答案:

答案 0 :(得分:0)

想出解决方案,我需要先访问方法

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