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 :
<label for="user_general_info_first_name">First name</label>
<input id="user_general_info_first_name"
name="user_general_info[first_name]" size="30" type="text" value="Bob"
/>
<label for="user_general_info_gender">Gender</label>
<input id="__User::GeneralInfo:0x2178430_gender_male"
name="#&lt;User::GeneralInfo:0x2178430&gt;[gender]" type="radio"
value="Male" /> Male
<input id="__User::GeneralInfo:0x2178430_gender_female"
name="#&lt;User::GeneralInfo:0x2178430&gt;[gender]" type="radio"
value="Female" /> 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.
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à