I’m working in Rails2, the helper creates a hidden_field which is not helping me…
I load the input like this:
- remote_form_for([:admin, @user]) do |f|
// [...]
- f.fields_for :account_user do |a|
= a.collection_select :id, @accounts, :id, :name}, { :style => "width:330px;"}
and I get a result like this:
<select style="width: 330px;" name="user[account_user_attributes][id]" id="user_account_user_attributes_id">
<option value="20">public</option>
<option value="21">Test Account</option>
<option value="73">ggg</option>
</select>
<input type="hidden" value="175" name="user[account_user_attributes][id]" id="user_account_user_attributes_id">
when I reach the controller my params hash is this:
(rdb:228) y params
--- !map:HashWithIndifferentAccess
commit: Save booker
_method: put
action: update
id: "50"
controller: admin/users
user: !map:HashWithIndifferentAccess
user_role: agent
password_confirmation: ""
username: ERIK
account_user_attributes: !map:HashWithIndifferentAccess
id: "175"
password: ""
email: e@visrez.com
The value 175 in the hash refers to @user.account_user.id, the old value, but I don’t have the @user.account.id of the new selection.
What am I doing wrong?
Thank you
EDIT
I commented out the collection_select, and the hidden_field was still there, therefore… I need to change the title.
If I comment out f.fields_for the hidden_field disappears.
As pointed out by @jaydel, this is (very) probably the reason why I don’t get the right value in the hash. – And the quest goes on…
Actually it’s not my code, so now I’m checking for any overriding, as looks like it’s not the standard behavior
So we found out that the hidden field was originated by
A better look to the api unvealed the problem, and here is the correct use of
fields_for:So the method instead of the symbol.
Note: This code answers the question, but in my case I don’t really need any
fields_forin this relationship.