質問

他のいくつかのテーブルと関係があるテーブルに対して表示する必要があるフォームがあります。たとえば、「ケース」テーブルがあります。 (考えて、調査官のケース)、それはhas_one申立人とhas_oneクライアントです。

フォームに、ケースデータ、クライアントデータ、および申請者データを入力するフィールドを表示したいと思います。これを実行する簡単な方法はありますので、送信時に次のように簡単になります。

case = Case.new(params[:case])
case.save

ケースデータのみのフォームを送信して保存している場合はどうでしょうか。

役に立ちましたか?

解決

activerecordの accepts_nested_attributes_for メソッドを探しているように聞こえます。

を使用してフォームを作成する必要があります
- form.fields_for :claimant do |claimant_form|
  = claimant_form.text_field :name

Ryan Daigleのブログ投稿

他のヒント

case.saveを呼び出すだけで機能する方法があるとは思わない。

フォームを作成するには、fields_forの使用を検討します。 http://api.rubyonrails.org/classes/ActionView/Helpers/ FormHelper.html#M001605

fields_forを使用すると、異なるPOST変数に格納されているフィールドを追加できるため、フィールドを正しく設定してから新しいメソッドで次のようなことができる可能性があります。

claimant = Claimant.new(params[:claimant])
claimant.save

それほど複雑ではありません。

ネストされたマルチの作成については、 complex-form-examples をご覧ください。 -モデルフォーム。これは、Rails 2.3の accepts_nested_attributes_for で動作するように更新されました。

必要に応じて params [:case] の下に関連付けをすべてネストできます。 case.save を呼び出すと、他のすべても保存されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top