Bonjour,
je n’arrive pas à mettre à jour certains champs qui sont représentés par
des boutons radio dans le formulaire d’édition d’un de mes models.
J’ai un User model qui has_one User::GeneralInfo (dans un sous-dossier
“user”)
Dans routes.rb, j’ai :
map.resources :users do |users|
users.resource :general_info, :controller => ‘user/general_infos’
end
Le GeneralInfosController est aussi dans un sous-dossier “user”, et est
ainsi :
class User::GeneralInfosController < ApplicationController
…
def edit
@user = @current_user
@user.general_info ||= User::GeneralInfo.new
@general_info = @user.general_info
end
Le formulaire pour modifier les “general_infos” est dans
views/user/general_infos/edit.html.erb :
<% form_for(@general_info) do |f| %>
<%= f.label :first_name %>
<%= f.text_field :first_name %>
<%= f.label :gender %>
<%= radio_button @general_info, :gender, “Male” %> Male
<%= radio_button @general_info, :gender, “Female” %> Female
…
Le résultat généré en HTML est le suivant :
First name
Gender
Male
Female
Le first_name se met à jour correctement, mais pas le gender. Le code
produit pour gender ne m’inspire pas confiance, je m’attendrais plutôt Ã
des id “user_general_info_gender_male”
J’ai essayé de remplacer form_for(@general_info) par form_for([:user,
@general_info]) , mais dans ce cas j’obtiens une erreur “undefined
method `user_user_general_info_path’”.
Avec vous une idée de ce qui cloche ?
Merci pour vos aides et remarques.