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

我需要一个可以接受 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
4

1 回答 1

0

你可以看看这个 Railscate esp http://railscasts.com/episodes/196-nested-model-form-part-1

于 2012-08-27T07:03:19.073 回答