24 votes

composed_of dans Rails - quand l'utiliser ?

Quand devez-vous utiliser la fonction composed_of méthode de classe ?

29voto

Staelen Points 4666

Personnellement, je pense que cela est utile lorsque vous avez des objets qui ne sont pas stockés dans la base de données, mais qui sont affichés dans la base de données, par exemple la température, la position GPS, la balance, etc.

Vous pourriez alors vous demander pourquoi ces données ne sont pas stockées dans la base de données ? Dans la base de données, nous ne stockons qu'une valeur, mais si nous voulons attacher des méthodes utiles et pertinentes à cette valeur,

par exemple

  1. dans le cas de la température, nous pourrions avoir besoin de méthodes telles que to_fahrenheit , to_celsius , is_boiling_point? , etc.

  2. dans le cas de la localisation par GPS, nous pourrions avoir besoin de méthodes telles que distance_from(point) , route_to(point) , etc.

il est donc très utile de pouvoir créer les classes pour ces objets, et d'utiliser composed_of pour initialiser ces objets à la volée

J'espère que cela vous aidera =)

5voto

Florin Points 1212

Un exemple plus complexe de l'utilisation de composed_of con L'argent :

composed_of :price,
  :class_name => "Money",
  :mapping => [%w(cents cents), %w(currency currency_as_string)],
  :constructor => Proc.new { |cents, currency| Money.new(cents || 0, currency || Money.default_currency) },
  :converter => Proc.new { |value| value.respond_to?(:to_money) ? value.to_money : raise(ArgumentError, "Can't convert #{value.class} to Money") }

Source : github wiki .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X