4

ActiveScaffold を使用して、一度に複数の学生の課題レコードを作成したいと考えています。レコードには、student_id を除いて、すべて同一のデータが含まれます。

デフォルトのフォームを上書きし、学生名を選択するためのドロップダウン ボックスを複数選択ボックスに置き換えることができました。これが私が望んでいることです。ただし、その変更は表面的なものにすぎません。基本的なコードは、そのボックスから最初に選択された名前のみを取得し、単一のレコードを作成するためです。

基礎となる ActiveScaffold コードの解読と書き換えをあまり必要としない方法で、これを達成するための良い方法を誰かが提案できますか?


更新: この問題に対する適切な答えがまだ見つかりません。

4

3 に答える 3

1

select_tagのhtmlパラメータに:multiple => trueを追加して、複数選択ボックスを定義したと思います。次に、コントローラーで、選択した名前のリストにアクセスする必要があります。次のように実行できます。

params[:students].collect{|student| insert_student(student, params[:assignment_id]) }

collectを配列または列挙型に適用すると、その配列の各項目をループして、各生徒に対して必要な処理を実行できます(この例では、生徒を挿入するための関数を呼び出します)。Collectは、内部でコードを実行した結果を含む配列を返します。

于 2008-11-17T16:06:16.283 に答える
0

私はBatchCreateを紹介されました。これは ActiveScaffold 拡張機能であり、うまくいくようです。

于 2008-09-15T12:52:48.003 に答える
0

割り当てにhas_many :studentsまたはがhas_and_belongs_to_many :studentsある場合、複数選択ボックスの ID を assignment_student_ids[] に変更すると、機能するはずです。

于 2008-09-13T06:40:11.100 に答える