J'utilise Rails et je veux faire en sorte que attr_accessor :politics
soit défini par défaut sur false.
Est-ce que quelqu'un sait comment faire cela et est capable de l'expliquer en termes simples pour moi?
Rails a attr_accessor_with_default afin que vous puissiez écrire
class Like
attr_accessor_with_default :politics,false
end
i = Like.new
i.politics #=> false
et c'est tout
METTRE À JOUR
attr_accessor_with_default est obsolète dans Rails 3.2 .. vous pouvez le faire à la place avec pure Ruby
class Like
attr_writer :politics
def politics
@politics || false
end
end
i = Like.new
i.politics #=> false
Vous pouvez utiliser le joyau virtus:
https://github.com/solnic/virtus
Du README:
Virtus vous permet de définir des attributs sur des classes, des modules ou des instances de classe avec des informations facultatives sur les types, la visibilité de la méthode de lecture/écriture et le comportement en matière de contrainte. Il prend en charge de nombreuses contraintes et un mappage avancé d'objets et de collections incorporés.
Il supporte spécifiquement les valeurs par défaut .
Si vous définissez votre attr_accessor, la valeur par défaut est nil
. Vous pouvez y écrire, ce qui le rend !nil