2009-03-06 13 views
2

私はこの質問を先に聞いたことがありますが、私はそれを言い換えるつもりです。ユーザーが多くのターゲットを作成できるワークシートがあり、各ターゲットには多くの属性があります(attribute_idを指定するものを選択します)。各ターゲットはjscriptによって追加されます。 ryan batesのマルチモデルのスクリーンキャストでは、複数の子供をその場で追加する方法について説明していますが、複数の親に掘り下げません。 コード複数の親と子を1つのフォームで作成、作成する

<% fields_for "target_attributes[]", Target.new do |target| -%> <%= target.select("id",@classification_hash[classification_type.id].collect{|c| [c.name,c.id]}

は私のselect要素(のform_for:ワークシート)与える

<select id="worksheet__target_id" class="selectbox" name="worksheet[target_attributes][][attribute_id]">

をし、すべての私の目標は、配列に属性を置きますのハッシュのパラムスを通過し、それは問題ありません。だから、私はこのロジックを取り、ネストされたfields_forを持って、そして自分自身の配列

<% fields_for "worksheet[]",Worksheet.new do |worksheet| -%> <% worksheet.fields_for "target_attributes[]", Target.new do |target| -%> <%= target.select("id",@classification_hash[classification_type.id].collect{|c| [c.name,c.id]}

に私の目標&その属性のすべてを置くことを考えていた私に、フォーム

を与えます

<select id="worksheet__target_id" class="selectbox" name="worksheet[][target_attributes][][attribute_id]">

だから、私は自分の配列になり、その後の私の目標のすべてを考え出しし、すべての肉汁だろうが、私は私のparamsでこれを取得する:

worksheet"=> 
    [{"target_attributes"=>[{"id"=>"12"}]}, 
    {"target_attributes"=>[{"id"=>"15"}]}, 
    {"target_attributes"=>[{"id"=>"17"}]}, 
    {"target_attributes"=>[{"id"=>"14"}]}, 
    {"target_attributes"=>[{"id"=>"16"}]}, 
    {"target_attributes"=>[{"id"=>"17"}]}] 

(注、3 target_attributeは、ターゲットごとに選択がありますそのため、3つの属性を持つ2つのターゲットがリストされています) コントローラでは、このように各ターゲットを分離して新しいターゲットオブジェクトを作成することはできません。誰か助けてくれますか?などなど、各ターゲットについては

は、その後、私は基本的にのための新たな「行」を持っている追加

<select id="worksheet__target_id" class="selectbox" name="worksheet[target_attributes][1][][attribute_id]">(各ターゲット属性のために、3回)

<select id="worksheet__target_id" class="selectbox" name="worksheet[target_attributes][0][][attribute_id]">:私はこのようになりますフォームをみたいですそれぞれ新しいタスク。しかし、私は選択名を評価し、いくつかのJavascriptイテレータ変数に基づいてそれを修正するいくつかの乱雑なJavascriptなしでこれを行う方法はありません。どんな考えも大変ありがとうございます

答えて

0

チェックアウトActivePresenterそれは、あなたがしたいことをするのに役立ちます。

5

レールの世界では一般的にはやや難しいことに簡単に答えてもらえませんが、可能であれば、レール2.3にアップグレードすることを検討してください(これは今のリリース候補で、今週のリリース予定です)。

IMHOは、このリリースの最大の特徴は、ネストされたモデルフォームが簡単な方法だということです。

ここで説明するのではなく、レール2を見てください。3リリースノート:http://guides.rubyonrails.org/2_3_release_notes.html#nested-object-forms

これが役立ちます。

関連する問題