Salut, merci pour vos réponses.
Oui c'est ça, je ne souhaite modifier les attributs que quand ceux-ci sont
renseignés.
J'ai essayé allow_blank et ça fonctionne nickel.

Pour les booleens, j'ai réglé mon problème, il me suffisais simplement de
donner la valeur "true" ou "false" au bouton (j'avais essayé diverses
choses plus farfelues les unes que les autres)

Merci à vous ;)


Le 28 janvier 2013 14:20, Florian Dutey <[email protected]> a écrit :

> Quel est le problème en fait, parce que tu ne le précises pas....
> Je te réponds sur ce que j'ai cru comprendre: tu veux pouvoir valider des
> attributs mais que quand ceux ci sont renseignés.
>
> Premièrement, allow_nil => true c'est un peu du caca. Quand tu soumets un
> formulaire, l'attribut n'est pas set à nil si le champ n'est pas rempli, il
> est set à '' (chaine vide). Il faut donc utiliser :allow_blank => true.
> Ensuite, si tu veux que les validations ne se déclenchent que lorsque le
> champ est rempli, il faut que le champ soit converti à nil lorsqu'il s'agit
> d'une chaine vide. Pour ca, je te conseille l'excellente gem
> "attribute_normalizer" (https://github.com/mdeering/attribute_normalizer)
> qui permet (entre autres) de le faire.
> Enfin, tu n'as plus qu'a rajouter un :if => :attribut? dans ta validation.
> Ainsi, elle ne se déclenchera que si elle n'est pas falsy.
>
> Pour les formulaires, te prends pas la tete et utilise formtastic
>
>
> Le 28 janvier 2013 09:42, thierry henrio <[email protected]> a
> écrit :
>
> Salut Antoine
>>
>> 2013/1/26 Antoine Julienne <[email protected]>
>>
>>>
>>> Il faut que je fasse le même système d'utilisateurs, et je dois leur
>>> rajouter des attributs.
>>>
>>> *J'ai donc modifié ma base de données, et j'ai défini des méthodes de
>>> validations pour chacun des ces attributs*.
>>> Le problème est que maintenant, *je suis obligé de renseigner ces
>>> attributs* lors de l'inscription (ce qui ne me plait pas trop,
>>> j'aimerai garder l'inscription simple).
>>> J'ai essayé de mettre allow_nil => true pour chacun de ces attributs,
>>> mais le problème persiste.
>>>
>>> Une idée ?
>>>
>>
>> IHMO, je m'attend à avoir une erreur de validation si post un formulaire
>> sans avoir rempli un champs obligatoire : ce n'est pas un problème pour moi
>>
>> Il se manifeste comment le problème pour toi ?
>> Qu'est ce que tu vois ?
>> Qu'est ce que tu aimerais voir ?
>>
>> Et qu'elle est ton implem ?
>>
>> http://guides.rubyonrails.org/active_record_validations_callbacks.html#allow_nil
>>
>>
>>> PS: autre question en passant : deux de ces attributs sont des booléen
>>> et doivent apparaitre sous forme de boutons radio dans le formulaire.
>>> Qu'elle est la meilleur façon de gérer ça (pour l'enregistrement,
>>> l'affichage, et l'édition) ?
>>>
>>
>> checkbox, ou checkbox_tag :
>>
>>
>> http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-check_box
>>
>> http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-check_box_tag
>>
>> --
>> --
>> 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]
>>
>>
>>
>
>  --
> --
> 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]
>
>
>



-- 
Cordialement,

Antoine JULIENNE
http://www.antoinejulienne.fr

-- 
-- 
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]
--- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse [email protected].
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .


Répondre à