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 <
li...@ruby-forum.com> 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/.