Collection_select not working for nested forms

hi guys,

Ruby 1.8.7
Rails 2.3.5

I have a nested form in which a select drop down works fine for
creating
the model, but on edit form it does not show the current value.
It gets set to the default option.

The domain is like this:
Listing <has_one> Address <belongs_to> Neighbourhood

The drop down used to work for address edit form, before nesting the
model.

address.rb → Address.rb · GitHub
partial _address_form.html.erb → _address_form.html.erb · GitHub

The method @neighbourhood_for_metro in following snippet is a helper
which
works perfectly fine.

<%= address_form.label :neighbourhood %>
<%= collection_select(:address,:neighbourood,@neighbourhood_for_metro,:id,:name) %>

I spent enough time on this issue to know its some silly thing that
I am missing.

I would really appreciate if any one could help me solve this issue.

regards,
aakash

Try changing the method to :neighbourhood_id

I have tried that, no change in behaviour.

using
address_form.collection_select(:neighbourhood_id,@neighbourhood_for_metro,:id,:name)
worked rather than collection_select(@object,@method,…)

it seems use of form specific methods avoids a lot of trouble, when
shifting
forms from individual to nested.

Hello,

Spotted a little typo in _address_form.html.erb · GitHub on line 15: <
%=
collection_select(:address,:neighbourood,@neighbourhood_for_metro,:id,:name)
%>

That :neighbourood missing h.

Maybe theres your problem?

Any difference if you change :address to @address?

If that doesnt work, I guess you’ll have to do :selected =>
@address.neighbourhood_id