Bonsoir Allnighter,
@candidat.PASSWORD = params[:candidat][:PASSWORD]
cette méthode est plus longue certe et surtout moins élégante, mais elle
permet de débloquer le problème. j’avait remarqué que les requetes
“Insert into” généré par rails ne contenaient pas le champ (CIN) clé de
la table Candidat.
ya ptêtre une condition d’unicité sur la clé primaire CIN Ã
vérifier ou le SGBDR va s’en occuper ?
Jean-François,
le champ email n’est pas obligatoire, comment je peux le checker que
s’il n’est pas vide? Merci
pourquoi pas :
validates_format_of :name, :with => MA_BELLE_REGEX, :if => Proc.new {
|r| r.name? }
ou :
validates_each :name, :allow_nil => true do |model, attr, value|
unless value =~ MA_BELLE_REGEX
model.errors.add(attr, “#{value} is not an email adress.”)
end
end
En parlant de belle expression rationnelle, il y a un plug-in qui
essaie de valider une adresse électronique au sens RFC822 du
terme,
https://svn.greenpeace.org/repositories/rails_plugins/validates_as_email/
j’ai pas vraiment vérifié si c’était 100% rfc-compliant, mais la regex
proposée a néanmoins fière allure :
module RFC822
EmailAddress = begin
qtext = ‘[^\x0d\x22\x5c\x80-\xff]’
dtext = ‘[^\x0d\x5b-\x5d\x80-\xff]’
atom = ‘[^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-’ +
‘\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+’
quoted_pair = ‘\x5c[\x00-\x7f]’
domain_literal = “\x5b(?:#{dtext}|#{quoted_pair})\x5d"
quoted_string = "\x22(?:#{qtext}|#{quoted_pair})\x22”
domain_ref = atom
sub_domain = “(?:#{domain_ref}|#{domain_literal})”
word = “(?:#{atom}|#{quoted_string})”
domain = “#{sub_domain}(?:\x2e#{sub_domain})"
local_part = "#{word}(?:\x2e#{word})”
addr_spec = “#{local_part}\x40#{domain}”
pattern = /\A#{addr_spec}\z/
end
end
(dans lib/validates_as_email.rb)
même si, Allnighter, dans ton cas et dans la majeure partie des
cas, une validation de [email protected] suffit…
-- Jean-François.