私は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