0

次の点を考慮してください。

customer.rb

module Refinery
    class Customer < Refinery::Core::BaseModel      
      has_many :users, :class_name => "Refinery::User"

      accepts_nested_attributes_for :users
    end
  end
end

user_decorator.rb

Refinery::User.class_eval do
  belongs_to :customer, :class_name => 'Refinery::Customer'
end

customer_controller.rb

module Refinery
  class UsersController
    def new
      @customer = ::Refinery::Customer.new
      # tried using build here as well with no sucess
      @owner = @customer.users.new
      @inputer = @customer.users.new

      # raise @customer.users.length.to_yaml => returns 2 so that works!
    end
  end
end

new.html.erb

<%= form_for @customer do |f| %>
  <% if @customer.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@customer.errors.count, "error") %> need to be corrected before continuing:</h2>
      <ul>
        <% @customer.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
        <% end %>
      </ul>
    </div>
  <% end %>
  <!-- company fields here -->
  <%= fields_for :users do |user| %>
    <div>
      <%= user.label :first_name %>
      <%= user.text_field :first_name %>
    </div>
    <div>
      <%= user.label :last_name %>
      <%= user.text_field :last_name %>
    </div>
    <!-- more user fields here etc -->
  <% end $>
<% end %>

このページを表示すると、1 人のユーザーしか表示されません。フィールドの ID も次のようになります。

<div>
   <label for="users_last_name">Last name</label>
   <input id="users_last_name" name="users[last_name]" size="30" type="text">
</div>

そこにある種のインデックスが必要だと思いますよね?(つまり、配列を反復するかのように 0、1、2 など。

私は何を間違っていますか?

4

1 に答える 1