Ruby on rails Rails:在控制器中创建两个嵌套项,但视图中只显示一个

Ruby on rails Rails:在控制器中创建两个嵌套项,但视图中只显示一个,ruby-on-rails,nested-attributes,Ruby On Rails,Nested Attributes,考虑以下几点: customer.rb module Refinery class Customer < Refinery::Core::BaseModel has_many :users, :class_name => "Refinery::User" accepts_nested_attributes_for :users end end end Refinery::User.class_eval do belong

考虑以下几点:

customer.rb

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

      accepts_nested_attributes_for :users
    end
  end
end
Refinery::User.class_eval do
  belongs_to :customer, :class_name => 'Refinery::Customer'
end
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
<%= 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 %>
客户_控制器.rb

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

      accepts_nested_attributes_for :users
    end
  end
end
Refinery::User.class_eval do
  belongs_to :customer, :class_name => 'Refinery::Customer'
end
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
<%= 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 %>
new.html.erb

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

      accepts_nested_attributes_for :users
    end
  end
end
Refinery::User.class_eval do
  belongs_to :customer, :class_name => 'Refinery::Customer'
end
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
<%= 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 %>

继续之前需要更正:
当我查看此页面时,只显示一个用户。字段的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等,用于对数组进行迭代

我做错了什么?

你错过了比赛

f.fields_for

只要添加它,它就会工作

您将错过f字段_for@AnezioCampos嘿,是这样的!把这个作为答案贴出来,我会接受并投票!