1

ユーザーモデル、品種モデル、そしてペットモデルがあるとしましょう。ユーザーは、さまざまな品種のペットをたくさん飼うことになります。次のようなフォームが必要です。

[ペット名を選択するためのドロップダウンメニュー]

[名前]<---必要に応じて名前を編集します

[繁殖]

[年]

[色]

したがって、ユーザーが10種類のペットを飼っている場合、[ペット名を選択するためのドロップダウンメニュー]には10種類のペットの名前が表示されます。ユーザーがドロップダウンから名前を選択するときは、他のフィールドに事前に入力する必要があります。うまくいけば、レコードを削除したり、新しいレコードを追加したりする方法もあるでしょう。

私の本能は、フォームを繰り返し処理し、それらをdivでラップしてから、JSを使用して表示されるフォームを制御することです。しかし、それは不必要に複雑に思えます。それは本当にそれを行うための最良の方法ですか?

ユーザーはおそらく50を超えるレコードを持っていないでしょう。


追加するために編集:

わかりました、それで私はこれをもう少し得ていると思います。これが私がすべきことです。私のコントローラーには、次のようなものが必要です。

current_user.pets.each do
   @pets = pets.find(#ID) 
end

それから私の見解では、私は持っているべきです:

[Drop down of all pets]

 pets.each do
   <div id=id class=hidden>
   simple_form_for @pet_ID
   </div>
 end

次に、ドロップダウンで起動するスクリプト:

<script>
 Hide <div> with previous pet id
  Show <div> with new pet id
</script>

それをrailscastsのネストされたフォームと組み合わせると、うまくいくはずですよね?ここで新人のミスを犯していますか?

4

1 に答える 1

1

RyanBatesのRailscastをチェックしてください。ネストされたコレクションを探します。

http://railscasts.com/episodes/196-nested-model-form-part-1

http://railscasts.com/episodes/197-nested-model-form-part-2

彼は、コレクションを1対多の他のコレクション内にネストするための非常に単純なソリューションを提供します。ライアンは素晴らしいです。Railsの開発に真剣に取り組んでいるのであれば、彼のフルラインのビデオは月額9ドルの価値があります。

于 2012-09-25T16:30:04.423 に答える