Crear relaciones de muchos a muchos en un riel anidado desde

Estoy tratando de crear Grupos, Usuarios y Membresías (las relaciones de muchos a muchos) simultáneamente. Las personas pueden agregar usuarios al grupo a medida que lo crean y luego quiero que se dirija a una vista del grupo con todos los miembros. Puedo hacer que se creen los usuarios y que la membresía del usuario actual se guarde en la base de datos. Sin embargo, estoy luchando por obtener la identificación de los objetos de usuario recién creados para guardar las nuevas membresías.

Group.rb
class Group < ActiveRecord::Base
  has_many :memberships
  has_many :users, :through => :memberships
  has_many :users

  accepts_nested_attributes_for :users, :reject_if => lambda { |a| a[:name].blank? or a[:number].blank? }
end
Membership.rb
class Membership < ActiveRecord::Base
  belongs_to :groups
  belongs_to :users
end
User.rb
class User < ActiveRecord::Base
  has_many :memberships
  has_many :groups, :through => :memberships
  belongs_to :group
end
groups_controller.rb
class GroupsController < ApplicationController

  def show
    @group = Group.find(params[:id])    
    respond_to do |format|
      format.html
    end
  end

  def new
    @group = Group.new

    3.times { @group.users.build }
  end

  def create 
    @group = Group.new(params[:group]) 
    @group.memberships.build(:user_id => current_user.id)
    logger.info @group.users

    @group.users.each do |x|
      @group.memberships.build(:user_id => x.id )
    end

    respond_to do |format|
      if @group.save
        format.html { redirect_to(@group, :notice => 'Success!') }
      else
        format.html { render :action => "new" }
      end
    end

  end
end

Mi formulario se ve así:

Which es creado por:

views / groups / new.html.rb
<h1>New group</h1>

<%= form_for(@group) do |form| %>
<fieldset>
  <legend>Create a new group</legend>
  <%= render 'shared/group_error_messages', :object => form.object %>  
  <div class="clearfix">
    <%= form.label :group_name %>
    <div class="input">
      <%= form.text_field :group_name %>
    </div>
  </div>

  <div id="users">
    <div class="user">
      <%= form.fields_for :users, :url => {:action => 'new', :controller => 'users', :registered => false}, do |user_form| %>
      <%= render 'user', :user => user_form %>
      <% end %>
    </div>
  </div>
</div>

<div class="actions">
  <%= form.submit :value => 'Create your group', :class => 'btn success'%>
</div>
</fieldset>
<% end %>
views / groups / _user.html.rb
<div class="clearfix">
  <%= user.label :name %>
  <div class="input">
    <%= user.text_field :name %>
  </div>
</div>
<div class="clearfix">
  <%= user.label :number %>  
  <div class="input">
    <%= user.text_field :number %>
  </div>

</div>
<div class="clearfix" style="display:none">
  <%= user.label :password %>  
  <div class="input">
    <%= user.password_field :password, :value => newpass(6) %><!-- todo: fix this horrible hack -->
  </div>
</div>
<div class="clearfix" style="display:none">
  <%= user.label :registered %>  
  <div class="input">
    <%= user.text_field :registered, :value => false %> <!-- todo: fix this horrible hack -->
  </div>
</div>
<div class="clearfix" style="display:">
  <%= user.label :id %>  
  <div class="input">
    <%= user.text_field :id %> <!-- todo: fix this horrible hack -->
  </div>
</div>

Así que mi deseo principal es obtener este código para encontrar los ID de usuario a medida que se crean y luego usar esos identificadores para crear la membresía entre los grupos y los usuarios.

Graciasmuy mu con mucha anticipación:)

Respuestas a la pregunta(1)

Su respuesta a la pregunta