I have 2 user models and an address.
class User < ActiveRecord::Base has_many :addresses accepts_nested_attributes_for :addresses end class Address < ActiveRecord::Base belongs_to :user end
My controller
def new @user = User.new @user.addresses << Address.new @user.addresses << Address.new end def create @user = User.new(params[:user]) if @user.save
And my view
<%= form_for @user do |f| %> <%= f.label :name %> <%= f.text_field :name %> <%= f.fields_for :addresses do |a| %> <p> Home </p> <%= a.text_field :state %> <%= a.text_field :country%> <%= a.text_field :street %> <p> Work </p> <%= a.text_field :state %> <%= a.text_field :country%> <%= a.text_field :street %> <% end %> <% end %> <% end %>
My problem: I get only the last state, country, street entered in params.
"addresses_attributes"=>{"0"=>{"street"=>"test", "state"=>"test",, "country"=>"test"}, "1"=>{"street"=>"", "state"=>"", "country"=>""}}
Also, if there is a better way to do this, I will be grateful for any suggestions.
source share