我有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
对象矩阵的表单,如下所示:
| User | Behaviour1 | Behaviour2 | Behaviour3 | | Bob | ___ | ___ | ___ | | Jane | ___ | ___ | ___ | | Jill | ___ | ___ | ___ |
我是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 %>
reports_controller.rb
def create
@report = Report.new( params[:report] )
end
答案 0 :(得分:0)
你可以看看这个Railscate esp http://railscasts.com/episodes/196-nested-model-form-part-1