Salut,
pas besoin de répéter que tu débutes, on a compris :p.
Non, plus gentillement et pour répondre à ta question, si t'as une
exception Called id for nil dans une vue au niveau d'un form_for c'est
tout simplement que Rails ne "retrouve" pas ta variable (ta variable
vaut nil). En gros ça veut dire que ta variable est mal déclarée dans
le contrôleur (ou encore que l'action où tu déclares ta variable n'est
pas celle exécutée par ta vue !). Tu peux inspecter ton retour serveur
pour voir ce qui est exécuté réellement, ou encore apprendre à
débugger (http://guides.rubyonrails.org/debugging_rails_applications.html).

D'autres choses :
1)  @user = enregistrement.new => Pardon ? enregistrement ? avec un
"e" minuscule ? t'es censé instancier une classe là, et les noms de
classe en Ruby ont une majuscule et sont en CamelCase.

2) Ne mets jamais (JAMAIS) de noms de variables en français dans ton
soft. Si tu montres un EnregistrementController à un dev Rails avancé
il rigolera et si tu le montres à personne c'est toi qui rigolera dans
2 ans quand tu retombera sur ton code. En gros ça fait amateur et trop
Windev-style.

3)  @user = enregistrement.new(params[:login_user]) => en plus du
"enregistrement" (voir point 1), ton params[:login_user] il sort d'où
? Si ton formulaire est déclaré comme form_for @user, tu récupères
params[:user]... Regarde comment est fait un scaffold en Rails.

Courage..! Et n'oublie pas http://guides.rubyonrails.org/

Nicolas.

2010/10/26 olivi morel <[email protected]>
>
> bonjour
> avant tout je tiens à préciser que je suis un débutant en ruby on rails
>
> j'essaye de réaliser un formulaire d'enregistrement avec un login , mail , 
> password.
> seulement voila quand j'exécute mon apli il me dit ceci que je ne comprend pas
>
> Called id for nil, which would mistakenly be 4 -- if you really wanted the id 
> of nil, use object_id
>
> Extracted source (around line #11):
>
> 8:    <body>
> 9:            <fieldset>
> 10:                   <legend> Session d'enregistrement</legend>
> 11:                   <% form_for @user do |form| %>
> 12:                   <%= form.error_messages %>
> 13:                   <p>
>
> 14:                           <%= form.label 'Login:' %>
>
>
> voici mon controller enregistrement_controller.rb
>
> 1:class EnregistrementController < ApplicationController
> 2:
> 3:  def new
> 4:    @user = enregistrement.new
>
> 5:  end
> 6:
> 7:  def create
> 8:   @user = enregistrement.new(params[:login_user])
> 9: respond_to do |format|
> 10:     if @user.save
> 11:       flash[:notice]= "Utilisateur #[email protected]_user} à ete créer."
>
> 12:
> 13:           format.html { redirect_to(:action=>:index) }
> 14:        else
> 15:           format.xml { render :xml => @user.errors  }
> 16:    end
> 17:   end
> 18: end
>
> et voici deux session ci je pus dire de ma vue enregistrement
>
>
> 1:<fieldset>
> 2:                    <legend> Session d'enregistrement</legend>
> 3:                    <% form_for @user do |form| %>
> 4:                    <%= form.error_messages %>
> 5:                    <p>
> 6:                            <%= form.label 'Login:' %>
>
> 7:                            <%= form.text_field :login_user, :size  => 40 %>
> 8:                    </p>
> 9:                    
> 10:                   <p>
> 11:                           <%= form.label 'Password:' %>
> 12:                           <%= form.password_field :password, :size  => 40 
> %>
>
> 13:                   </p>
> 14:
> 15: end
>
>
> je tiens à tous vous remercier pour votre aide, mais aussi à vous êtes 
> penchés sur mon problème
> alors MERCI !
>
> --
> 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]


--
Nicolas Blanco, Web developper

http://www.nicolasblanco.fr
Jabber/GoogleTalk : [email protected]
Twitter : http://twitter.com/slainer68
Github : http://github.com/slainer68
Skype : slainer68

-- 
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 à