编写食谱应用程序。有一段时间可以解决这个问题。
我的模特:
配方
Recipe_Ingredient
成分
我的路线很简单
资源:食谱//和少数随机其他
在我的食谱控制器中:
def new
@recipe = Recipe.new
recipe_ingredients = @recipe.recipe_ingredient.build
recipe_ingredients.ingredient.build
end
我的食谱表格:
<%= simple_form_for @recipe do |r| %>
<%= r.input :title, label: 'Recipe Name:' %>
<%= r.input :description, label: 'Recipe Description' %>
<%= r.simple_fields_for :recipe_ingredients do |ri| %>
<%= ri.input :quantity, label: "Quantity" %>
<%= ri.simple_fields_for :ingredients do |i| %>
<%= i.input :name, label: "name" %>
<% end %>
<% end %>
<%= r.button :submit %>
<% end %>
不确定我做错了什么。错误是:
undefined method `recipe_ingredient' for #<Recipe:0x000001034d3650>
任何想法?花了2个晚上。
答案 0 :(得分:0)
特定错误似乎来自引用@recipe.recipe_ingredient
(单数),它应该是复数,因为它是has_many
关系。在RecipeController#new
:
recipe_ingredients = @recipe.recipe_ingredients.build
然后,对于recipe_ingredients.ingredient
,请尝试使用build_association
代替:
recipe_ingredients.build_ingredient