Ruby on rails 使用Rails表单提交类的多个实例
我有一个有趣的困境。我有一个Ruby on rails 使用Rails表单提交类的多个实例,ruby-on-rails,forms,object,model,Ruby On Rails,Forms,Object,Model,我有一个有趣的困境。我有一个:配料字段,用于获取用户对配料的输入。每种配料都属于一个配方,它是的表单(配料是的字段)。但是,用户应该能够输入多种成分,数量不限。现在我已经实现了添加1种成分的功能,如下所示: <%= form_for(:recipe, :url => {:action => 'create'}) do |f| %> <%= fields_for :ingredient do |i| %> <%= i.text_
:配料
字段,用于获取用户对配料的输入。每种配料都属于一个配方,它是的表单(配料
是的字段)。但是,用户应该能够输入多种成分,数量不限。现在我已经实现了添加1种成分的功能,如下所示:
<%= form_for(:recipe, :url => {:action => 'create'}) do |f| %>
<%= fields_for :ingredient do |i| %>
<%= i.text_field(:quantity, :size => '6', :maxlength => '6') %>
<%= i.text_field(:units, :size => '20', :maxlength => '20') %>
<% end %>
<% end %>
{:action=>'create'})do | f |%>
“6',:maxlength=>“6')%>
“20',:maxlength=>20'”%
为了简化事情,我将对无限需求进行描述,稍后我将使用AJAX进行描述,并假设用户最多只输入20个。我不知道如何设计我的表单来实现这一点,以及如何访问控制器中这20个元素中的每一个。它是不是类似于params[:recipe][1…20]
我读到这个问题:
但是我仍然被卡住了,如果可能的话,我想避免使用gem(我知道这是一个愚蠢的限制)。看看嵌套形式的gem,以便添加多种成分。也看看
class Recipe < ActiveRecord::Base
accepts_nested_attributes_for :ingredients
end
内部视图
<%= nested_form_for(@recipe, :url => {:action => 'create'}) do |f| %>
{:action=>'create'})do | f |%>
在我的配方
模型中,我确实有一个接受
的嵌套属性,但是为什么我需要它来制作配料
模型?好吧,我做了所有这些,我得到了一个错误:未定义的方法反映NilClass:Class的关联:3:4:添加一个新配方5:6:{:action=>'create'})do | f |%>7:
很抱歉,这是其他问题。我的实际错误是,
未定义的方法link to_remove for#
。我认为link to_remove
和link to_add方法是内置的?这两种方法都是在嵌套表单生成器中定义的。如果使用自定义表单生成器,则需要使用嵌套表单生成器我不认为我使用的是自定义的吗?
<%= nested_form_for(@recipe, :url => {:action => 'create'}) do |f| %>