0

has_manyAddress(es) と多くの Phone(s)の Company モデルがあります。

住所belong_to会社と電話番号。

edit私の問題は、会社の特定の住所と電話番号を取得する方法がわからないことです。

私のeditアクションでは、特定のレコードを呼び出してインスタンス変数に割り当てます (つまり、@address = 必要な特定のアドレスをスコープ検索したもの)。次に、fields_forI でこの子の属性を参照します。例:

<%= f.fields_for :addresses, @address do |address| %>

A) これが正しい方法かどうかはわかりません。編集のために親の特定の子にアクセスする方法に関するドキュメントはまばらです。

B) これはupdate成功した場合は正常に機能しますが、失敗した場合render :edit、ビューは親の現在の子 (editアクションで指定したもの + 別の子 - 一見次の行のレコード) を含む追加のフィールドを表示します。

したがって、基本的に、私のフォームはrender :editが呼び出されたときに 2 つの子で拡張されます。変。

これはどうしたの?ネストされた属性はどのように機能しますか? 複数のモデルが関連付けられたフォームを管理するためのより良い方法はありますか?

ありがとう。

4

3 に答える 3

1

ここでの目的外で fields_for ヘルパーを使用しているようです。あなたが説明したことから、親の関係の外でアドレスを編集したいと考えています。その場合は、form_for ヘルパーを使用して、そのアドレスを独自のフォーム (およびおそらく独自のコントローラー) で編集します。

親と同じフォームで CRUD 操作を行いたい場合は、fields_for を使用して、accepts_nested_attributes_for 機能を活用します。

于 2012-04-23T01:48:13.227 に答える
0

dmarucco が投稿したスクリーン キャストを反抗的に見て、ネストされたフォームの一般的な理解を深めてから、ネストされたフォームで以前に発生した問題を確認してください (私も多対多の関係にありました)。

Rails 3.1+ ネストされたフォームの問題: 保護された属性を一括割り当てできない

そのページの下部にソリューションを投稿しました。

また、ネストされたフォームをフォーマットするためにnested_formsimple_formのgemを使用したので、それを調べたいと思うかもしれません

これがあなたを正しい道に導くことを願っています!

于 2012-04-20T17:25:44.953 に答える
-1

これらのスクリーンキャストは、数千を超える単語を支援する可能性があります。

于 2012-04-20T13:36:45.393 に答える