Rails 3 – 创建视图以插入多个记录

我有一个看似简单的查询。 我需要创建一个基于单个模型接受多个记录的视图。 在我的例子中,模型是Project,它有1个外键(person)和2个字段时间,角色。 我需要创建一个视图(表单)来插入5个角色。

  

我收到一条错误消息:未定义的方法`fields [0] [stime]’

我不认为嵌套模型的railscast是我需要的。

我该怎么做呢?

编辑:项目模型代码如下:

 class Project < ActiveRecord::Base belongs_to :person attr_accessible :role, :stime end 

新方法的Projects_Controller代码如下:

 def new @project = Project.new end 

我看到你打算建立一对多关系( Product has_many :roles )。

这是一些建议。

首先,看一下accepts_nested_attributes_for方法。 您需要将其添加到模型中才能执行批量创建。

其次, fields_for是设计嵌套表单所需的。

我将为您提供一些关于简单Product has_many :line_items的大量创建示例Product has_many :line_items案例:

 <%= form_for @product do |f| %> <%= f.fields_for :line_items, [LineItem.new]*5 do |li_fields| %> <%= li_fields.text_field :quantity %> <%= li_fields.text_field :price %> 
<% end %> <%= f.submit "Create line items" %> <% end %>

您只需要在控制器中写入以下内容:

 @product.update_attributes params[:product] 

一次创建5个line_items

不要忘记white-list association _attributes (请参阅日志中的params以查看它)。 但我认为如果你得到了质量分配错误,你还是会这样做:)

我希望它有所帮助。