2

私はaccepts_nested_attributes_forを使用する多くの例を見てきましたが、json POST/PUT用のものはほんのわずかで、どれも役に立ちませんでした:/

私のアプリケーションは、フォームの作成に使用されます。

したがって、フォームには多くのフォーム行があり、フォーム行には多くの選択肢があります (ラジオの選択の場合)。だから、私はこのようなフォームモデルを持っています:

class Form < ActiveRecord::Base
    attr_accessible :name
    has_many :form_rows
    accepts_nested_attributes_for :form_rows
end

私のコントローラーは次のようになります:

def update
    @form = Form.find(params[:id])
    @form.update_attributes!(params[:form])
end

ここに私が送信しようとしているjsonがあります

{
  "name": "form test 4",
  "form_rows_attributes": [
    {
      "domtype": "Input",
      "label": "Super row new"
    }
  ]
}

私のシナリオでは、フォームの作成には名前のみが必要です。その後、ユーザーは form_rows を追加します。

これを行うと、名前は正しく更新されますが、form_rows はまったく作成されません。私のコンソールにはエラーはありません。フォームの UPDATE だけです。

私は何を間違っていますか?

4

1 に答える 1

6

params[:form]呼び出しが実際にパラメーターを見つけるように、JSON にはもう 1 レベルのネストが必要です。

{ 
  "form": {
    "name": "form test 4",
    "form_rows_attributes": [
      {
        "domtype": "Input",
        "label": "Super row new"
      }
    ]
  } 
}
于 2013-03-03T18:40:38.930 に答える