Hi,all!
I want to submit  'address' value in the location model .
And I want to submit 'address' value in the room/_form.html.erb .
So,I am using nested_form but it doesn't work. Please teach me some advice.

Error message is like this.

[code]
ActiveRecord::AssociationTypeMismatch (Location(#70291171806880) expected,
got ActiveSupport::HashWithIndifferentAccess(#70291193905860)):
  app/controllers/rooms_controller.rb:44:in `create'
[/code]

My db/schema is following...

[code]
...
  create_table "locations", :force => true do |t|
    t.string   "address"
    t.float    "latitude"
    t.float    "longitude"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  create_table "rooms", :force => true do |t|
    t.string   "room_name"
    t.text     "description"
    t.string   "pref_name"
    t.string   "email"
    t.integer  "user_id"
    t.integer  "price"
    t.datetime "created_at"
    t.datetime "updated_at"
  end
...
[/code]

Room model is ...

[code]

class Room < ActiveRecord::Base
  belongs_to :location
  belongs_to :user
  accepts_nested_attributes_for :location,:allow_destroy => true

...
[/code]


#rooms/_form.html.erb
[code]
<div>
    <%= f.fields_for @location do |loc| %>
      <%= loc.label "address" %><br/>
      <%= loc.text_field :address %>
    <% end %>
  </div>
[/code]

# rooms_controller.rb
[code]
  def new
    @room = current_user.rooms.build

    @location = current_user.locations.build


    respond_to do |format|
      format.html # new.html.erb
    end
  end
....
  def create
    @room = current_user.rooms.build(params[:room])
    @location = current_user.locations.build(params[:location])

    respond_to do |format|
      if @room.save
        format.html { redirect_to(@room, :notice => 'Room was successfully
created.') }
      else
         format.html { render :action => "new" }
      end
    end
  end


[/code]


Thanks!

-- 
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