1

Response と Entry の 2 つのモデルがあります。

Response has_one Entry
Entry belongs_to Response

(応答の表示ビューでこれを実行しようとしています)

Show のコントローラ アクションには次のようなものがあります。

@response = Response.find(params[:id])
@entry = @response.build_entry(:response_id => @response.id)

ちょうど試してみました@response.build_entry

simple_form gem と simple_form_for @entry を使用すると、エントリが作成されますが、親 (応答) ID はエントリ レコードに保存されません。

これを達成した唯一の方法は、隠しフィールドをフォームに追加することですが、これは本当にやりたくありません...

4

2 に答える 2

1

これを参照

:response_id => @response.idから削除build

@response = Response.find(params[:id])
@entry = @response.build_entry
@response.save
于 2012-09-25T10:10:34.700 に答える
0

サリルのコードは正しいです。アプローチを修正し、データ検証をコントローラーからモデルに移動する必要があると思います。

于 2012-09-25T10:27:09.867 に答える