如何为表单获取多个独特的输入字段?

时间:2018-05-01 15:34:24

标签: ruby-on-rails

我正在构建一个食谱应用程序,用户可以选择预先存在的成分,如果找不到该成分,则可以选择用户在输入字段上记下成分名称。我希望表单最多包含5个输入字段。

我见过类似的问题,但他们的解决方案没有奏效。 q1

q2

到目前为止,我已经尝试了两种方法。

<%=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个输入字段,我该怎么做?

1 个答案:

答案 0 :(得分:0)

原来两种方法都有效。我所缺少的是在我的Recipe模型类中添加“accepts_nested_attributes_for”。