ruby on rails - query - Compuesto en rieles: ¿cuándo usarlo?
sum all records rails (2)
Un ejemplo más complejo de cómo utilizar composed_of
con Money :
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") }
Fuente: github wiki .
¿Cuándo debería usar el método de clase composed_of
de ActiveRecord?
personalmente, creo que esto es útil cuando tiene objetos que no están almacenados en la base de datos, como se muestra en la base de datos, por ejemplo, temperatura, ubicación gps, balance, etc.
Puede preguntar entonces por qué no se almacenan en la base de datos? En la base de datos solo almacenamos un valor, pero si queremos adjuntar métodos útiles y relevantes a ese valor,
por ejemplo
en el caso de la temperatura, podríamos necesitar métodos como
to_fahrenheit
,to_celsius
,is_boiling_point?
, etcen el caso de la ubicación de gps, podríamos necesitar métodos como
distance_from(point)
,route_to(point)
, etc.
así que es bastante útil cuando podemos crear las clases para estos objetos, y usar compos_of para inicializar estos objetos sobre la marcha
Espero que ayude =)