1

同じモデルのインスタンスが複数あるフォームの作成に問題があります。私のフォームはタイムシート申請用です。以下は、私が作成したいもののスクリーンショットです。 http://imageshack.us/f/541/5w3o.png/

データを格納するテーブルは project_activity と呼ばれ、次の列名が含まれています: activity_id PK、project_id、task_id、party_id、activity_hours。

以下は私のコードです。提供したスクリーンショットはコードからの出力ですが、バックエンドにレコードを保存できません。

私の意図は、ユーザーが選択したときにローカル変数に格納される 3 つのドロップダウン メニュー (パーティー、プロジェクト、タスク) を用意することです。この変数は、表示される各 activity_hour フィールドの隠しフィールド タグに取り込まれ、フォームが保存されると、7 つの project_activity レコードが同じ関係者、プロジェクト、およびタスクで作成されます。

方法がわからないため、提供されたコードでこれを試みていません。出来ますか?

<h1>Timesheet</h1>

<%= form_for(@project_activity) do |f| %>

    <%= f.collection_select(:party_id, Party.all, :id, :party_name, {:prompt => params[current_party]}, {class: "span2"}) %></br>

    <table class="table">
        <tr>
            <td><%= select_tag  "project_activity[project_id]", 
                        grouped_options_for_select(Project.for_select(@date.strftime("%Y%m%d"))), 
                        {include_blank: true, class: "span2"} %></td>
            <td><%= select_tag  "project_activity[task_id]", 
                            grouped_options_for_select(ProjectTask.for_select(@date.strftime("%Y%m%d"))), 
                        {include_blank: true, class: "span2"} %></td>

            <% form_date = @date.beginning_of_week %>
            <%= (@date.beginning_of_week..@date.end_of_week).each do %>
                <%= f.fields_for(@project_activity) do |builder| %>
                    <td>
                        <%= builder.number_field :activity_hours, :class => 'input-mini' %>
                        <%= hidden_field_tag "project_activity[activity_date]", form_date %>
                        <% form_date+=1 %>
                    </td>
                <% end %>
            <% end %>

        <tr>
            <td><%= f.submit "Save", :class => 'btn btn-primary' %></td>
        </tr>
    </table>

    <% end %>
4

0 に答える 0