Patrick :
> quand je visite /profile/new, j'ai l'erreur suivante:
> undefined method `first_name' for #<Profile:0xb698fa24>
>
> si je remplace je modifie la fonction new de la manière suivante, ça marche:
> def new
> @profile = Profile.new(:first_name=>'',:last_name=>'')
> end
>
> Mais c'est pas très joli.
> Est-ce qu'il y a une meilleur façon?
Une "meilleur façon" n'existe pas.
Ceci dit, voici quelques alternatives :
1/ Définir une méthode de classe dans Profile :
def Profile.new_but_blank
new :first_name=>'', :last_name=>''
end
Et l'appeler à la place de new.
2/ Créer une instance de Profile qui servira de prototype.
BlankProfile = Profile.new(:first_name => '', :last_name => '').freeze
# le freeze n'est peut-être pas suffisant, à voir
et dans le contrôleur :
@profile = BlankProfile.dup
3/ Redéfinir Profile#initialize
def initialize(attributes = {})
@attributes = {}
@prefix_options = {}
attributes.reverse_merge! :first_name => '', :last_name => ''
load(attributes)
end
-- Jean-François.
--
Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org )
--~--~---------~--~----~------------~-------~--~----~
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]
-~----------~----~----~----~------~----~------~--~---