我有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
我需要一个可以接受 aReport
及其相关Value
对象矩阵的表单,如下所示:
| 用户 | 行为1 | 行为2 | 行为3 | | 鲍勃 | ___ | ___ | ___ | | 简 | ___ | ___ | ___ | | 吉尔 | ___ | ___ | ___ |
我是 Rails 新手,我已经阅读了有关嵌套属性的所有内容,并且我已经尝试过一百万种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 %>
报告控制器.rb
def create
@report = Report.new( params[:report] )
end