我正在构建一个食谱应用程序,用户可以选择预先存在的成分,如果找不到该成分,则可以选择用户在输入字段上记下成分名称。我希望表单最多包含5个输入字段。
我见过类似的问题,但他们的解决方案没有奏效。 q1
到目前为止,我已经尝试了两种方法。
<%=f.fields_for :ingredients do |ing|%>
<%= ing.label :name, "Enter ingredient name"%>
<br>
<%= ing.text_field :name%>
<%end%>
<%=f.fields_for :recipe_ingredients do |ri|%>
<%=ri.fields_for :ingredient do |ing|%>
<%=ing.label :name, "enter ing name"%>
<%=ing.text_field :name%>
<%end%>
<%end%>
recipes_controller.rb
def new
@recipe = Recipe.new
5.times do
@recipe.recipe_ingredients.build.ingredient
end
5.times do
@recipe.ingredients.build
end
end
协会
配方通过recipe_ingredients有很多成分。
一种成分通过recipe_ingredients有很多食谱。
对于这两种情况,我只返回1个输入字段,我该怎么做?
答案 0 :(得分:0)
原来两种方法都有效。我所缺少的是在我的Recipe模型类中添加“accepts_nested_attributes_for”。