Just trying a simple example to try to get nested to work... but can't
get it! Been 2 days! Please help. VERY SIMPLE controller, view,
models... listed below.
----------------------ERROR
MESSAGE----------------------------------------------------------------------
ActiveRecord::AssociationTypeMismatch in UserController#update_player
Racquet(#38866740) expected, got Array(#20762670)
It's rather unusual to name the action 'index' when it shows form for
creating a new object. Why not call it 'new' or something like that.
And then the action is named 'update_player' when in fact it is
creating a new Player object. Why don't you name it 'create'?
I'm sorry for nitpicking but choosing the right names will make your
life easier. (and will raise your chances for getting the answer)
Regarding your question. I usually look at params in such a situation.
You can find request params in webserver log(just scroll console
window where webrick is started) or you can insert a call to
'debugger' in the action and start webserver in debug mode (with '--
debugger').
I haven't tried running your code, but please change:
def update_player
@player = Player.new(params[:player])
@player.save
redirect_to :action => :index
end
to
def update_player
@player = Player.find_by_id(params[:id])
@player.update_attributes(params[:player])
redirect_to :action => :index
end
and give it a shot.
Yes, you are correct. Terrible naming. But was done to try quick
example. I am creating new player so
@cpr it won't find player because I am in fact creating one. I
know... terrible code.
It seems to be looking for Active Record object and I am passing in
array...
Help!
It really helps if you post as much information as possible. In this
particular case your form html (I mean from page source in browser)
and request params would be very helpful. I'm not an expert in nested
forms but it's probably because you are receiving an array instead of
a hash in a request.