31-10-2009, 11:52 AM
(Modification du message : 31-10-2009, 12:06 PM par Sephi-Chan.)
J'ajoute un petit correctif concernant la notation permettant de s'affranchir de tout échappement de caractère.
Je rappelle cette notation (la coloration syntaxique du forum chie un peu avec cette notation…)) :
Petits rappels sur cette notation :
J'ai appris récemment qu'on pouvait se passer du symbole Q. Il s'agit du comportement par défaut.
Un exemple appliqué à Rails, dans une méthode de validation d'un modèle.
Il me semble que cette notation bien sympathique est héritée de Perl.
Sephi-Chan
Je rappelle cette notation (la coloration syntaxique du forum chie un peu avec cette notation…)) :
nourriture = "pâté"
puts %q(Moi j'aime le "#{nourriture}".) # Moi j'aime le "#{nourriture}".
puts %Q(Moi j'aime le "#{nourriture}".) # Moi j'aime le "pâté".
puts %Q@Moi j'aime le "#{nourriture}".@ # Moi j'aime le "pâté".
Petits rappels sur cette notation :
- La différence entre %q et %Q est que le premier — à l'image des guillemets simples — n'interprète pas les expressions.
- On peut utiliser n'importe quel délimiteur (dans le dernier exemple, j'utilise @). Dans le cas de caractères en paires (les parenthèses, les accolades et les crochets), il faut utiliser leur homologue fermant.
J'ai appris récemment qu'on pouvait se passer du symbole Q. Il s'agit du comportement par défaut.
Un exemple appliqué à Rails, dans une méthode de validation d'un modèle.
class Participation < ActiveRecord::Base
belongs_to :user
belongs_to :workgroup, :counter_cache => true
validate ame_relation_does_not_exist_yet
protected
def same_relation_does_not_exist_yet
participation_count = Participation.count :conditions => [
'user_id = ? AND workgroup_id = ?',
user_id,
workgroup_id
]
if participation_count > 0
errors.add_to_base %("#{participation.user.login}" est déjà inscrit à l'atelier
"#{participation.workgroup.title}")
end
end
end
Il me semble que cette notation bien sympathique est héritée de Perl.
Sephi-Chan