嵌套表单没有插入DB?

时间:2013-02-13 15:21:12

标签: ruby-on-rails nested-forms nested-attributes

我有一个嵌套的表单,拒绝在DB中插入新记录,尽管父插入正常。毫无疑问是一个显而易见的问题,但有人可以提出建议吗?

父模型:

class Delivery < ActiveRecord::Base
  attr_accessible :orders_attributes
  has_many :orders, as: :orderable
  accepts_nested_attributes_for :orders

嵌套模型

class Order < ActiveRecord::Base
  attr_accessible :info
  belongs_to :orderable, polymorphic: true
  belongs_to :delivery

父控制器

  def new
    @delivery = Delivery.new
    order = @delivery.orders.build

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @delivery }
    end
  end

表格

= form_for @delivery do |f|

  = fields_for :orders do |builder|
    = builder.label :info
    = builder.text_area :info
  .actions
    = f.submit

输出:

  

在2013-02-13 16:06:53 +0100开始发布127.0.0.1的POST / / deliveries   通过DeliveriesController处理#create as HTML参数:   { “UTF8”=&gt; “中✓”,   “authenticity_token”=&gt; “中MdNjphnBQaaHdxelT7RnWDNG2XPpDTQipDKAOkT57h0 =”,   “orders”=&gt; {“info”=&gt;“1222”},“commit”=&gt;“创建投放”}(0.1ms)   开始事务SQ​​L(2.7ms)INSERT INTO“deliveries”   (“created_at”,“updated_at”)VALUES(?,?)[[“created_at”,Wed,13   2013年2月15:06:53 UTC +00:00],[“updated_at”,2013年2月13日,星期三   15:06:53 UTC +00:00]](1.3ms)提交事务重定向到

您可以看到它正在发布订单数据,但它没有正确地将其放入数据库中......我错过了什么?

1 个答案:

答案 0 :(得分:2)

我认为你需要

form_for @delivery do |f|

  = f.fields_for :orders do |builder|
    = builder.label :info
    = builder.text_area :info
  .actions
    = f.submit

注意f.fields_for是不同的