0

私はReport多くのネストされたValueオブジェクトを持っています:

レポートクラス

class Report < ActiveRecord::Base
  attr_accessible :comments
  has_many :values
  accepts_nested_attributes_for :values
end

値クラス

class Value < ActiveRecord::Base
  attr_accessible :value, :assessed_user_id, :behaviour_id

  belongs_to :assessed_user
  belongs_to :behaviour

  belongs_to :report

end

Report次のように、関連付けられたValueオブジェクトのマトリックスを受け入れるフォームが必要です。

| | ユーザー | 行動1 | 行動2 | 行動3 |
| | ボブ | ___ | ___ | ___ |
| | ジェーン | ___ | ___ | ___ |
| | ジル | ___ | ___ | ___ |

私はレールに不慣れで、ネストされた属性についてすべて読んでsemantic_form_for、formtastic で百万のバリエーションと可能性を試しましたが、適切なvalue.valueオブジェクトを適切な場所に配置したり、隠しフィールドとして設定しbehaviourたりすることができないようですassessed_user、しかし、私はこれを機能させることができないようです。

以下は、非表示フィールドと見なされるものを示しており、作成 (フォロー) でそれを受け入れることができません。また、サブフォーム要素にインデックスが表示されません。

<%= semantic_form_for @report do |f| %>
  <table>
    <tr>
      <th>User</th>
    <% @behaviours.each do |behaviour| %>
      <th><%= behaviour.name %></th>
    <% end %>
    </tr>
    <% index = 0 %>
    <% @members.each do |member| %>
      <tr>
        <td><%= member.first_name %> <%= member.last_name %></td>
        <% @behaviours.each do |behaviour| %>
          <% @report.values[index].behaviour_id = behaviour.id %>
          <% @report.values[index].assessed_user_id = member.id %>
          <td>

              <%= f.inputs :behaviour_id, :as => :hidden, :for => @report.values[index] %>
              <%= f.inputs :assessed_user_id, :as => :hidden, :for => @report.values[index] %>
              <%= f.inputs :value, :for => :values, :for => @report.values[index] %>
              <% index = index + 1  %>
          </td>
        <% end %>
      </tr>
    <% end %>  

  </table>
  <%= f.inputs :comments %>

  <%= f.buttons %>
<% end %>

reports_controller.rb

def create
  @report = Report.new( params[:report] )
end
4

1 に答える 1

0

この Railscate esp を見ることができます http://railscasts.com/episodes/196-nested-model-form-part-1

于 2012-08-27T07:03:19.073 に答える