1

親が正常に挿入しているにもかかわらず、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

出力:

127.0.0.1 の POST "/deliveries" を 2013-02-13 16:06:53 +0100 で開始しました DeliveryController#create による処理 HTML パラメーター: {"utf8"=>"✓", "authenticity_token"=>"MdNjphnBQaaHdxelT7RnWDNG2XPpDTQipDKAOkT57h0= ", "orders"=>{"info"=>"1222"}, "commit"=>"Create Delivery"} (0.1ms) トランザクション SQL の開始 (2.7ms) INSERT INTO "deliveries" ("created_at"," updated_at") VALUES (?, ?) [["created_at", 水, 2013 年 2 月 13 日 15:06:53 UTC +00:00], ["updated_at", 水, 2013 年 2 月 13 日 15:06:53 UTC +00 :00]] (1.3ms) commit トランザクションにリダイレクト

注文データがポストされているのがわかりますが、DB に正しく入れられていません。

4

1 に答える 1

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 が異なることに注意してください

于 2013-02-13T15:26:13.913 に答える