I'm relatively new to Rails myself, though I've been somewhat
successful with nested model associations in both directions.

Models:
class Person < ActiveRecord::Base
  belongs_to :address
  accepts_nested_attributes_for :address
end

class Address < ActiveRecord::Base
  has_many: persons
  accepts_nested_attributes_for :persons
end

Controller:
class PersonsController < ApplicationController
def new
  @person = Person.new
  @person.address = Address.new
end
def create
  @person = Person.new params[:person]
  if @person.save
    redirect_to :show
  else
    render :new
  end
end
end
class AddressesController < ApplicationController
def new
  @address = Address.new
  1.times { @address.persons.build } # increase 1 to default number of
people at address
end
def create
  @address = Address.new params[:address]
  if @address.save
    redirect_to :show
  else
    render :new
  end
end

Views:
# persons/new.html.erb
<% form_for @person do |person_fields| %>
  <% person_fields.fields_for :address do |address_fields| %>
    <%= address_fields.label ... %>
  <% end %>
<% end %>
# addresses/new.html.erb
<% form_for @address do |address_fields| %>
  <% address_fields.fields_for :persons do |person_fields| %>
    <%= person_fields.label ... %>
  <% end %>
<% end %>

If you get weird errors such as HashWithIndifferentAccess, try
refreshing your browser, so it pulls in a fresh form.

Hope that helps,
Mike

On Apr 29, 5:18 am, Sereno Mendes <[email protected]> wrote:
> Hi all,
>
> I have a relationship in this form: A person belongs to an address and a
> address can have many persons like below:
>
> class Person < ActiveRecord::Base
>   belongs_to :address
> end
>
> class Address < ActiveRecord::Base
>   has_many: persons
> end
>
> The ideia behind this is, if two or more persons share the same address,
> isn't necessary create two indetical rows in the database. But, like i'm
> new in the rails development, i want to create a form for person
> creation and edition that wraps the creation of related address, as 
> anestedform. I already made a search for a solution for this problem,
> but the solutions that i found in others sites are for the inverse
> associations, any idea?
>
> Thanks.
> --
> Posted viahttp://www.ruby-forum.com/.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Talk" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group 
> athttp://groups.google.com/group/rubyonrails-talk?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to