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
以查看它)。 但我认为如果你得到了质量分配错误,你还是会这样做:)
我希望它有所帮助。