¿Cuándo se debe utilizar el método de la clase ActiveRecord composed_of
?compuesto_de en Rieles: ¿cuándo usarlo?
Respuesta
personalmente, creo que esto es útil cuando se tiene objetos que no se almacenan en la base de datos, como se muestra en la base de datos, por ejemplo, la temperatura, la ubicación GPS, equilibrio, etc.
Usted puede preguntar entonces ¿por qué los que no se almacenan en la base de datos? En la base de datos que sólo almacenar un valor, pero si queremos adjuntar métodos útiles, pertinentes a ese valor,
por ejemplo,
en el caso de la temperatura, que podríamos necesitar métodos como
to_fahrenheit
,to_celsius
,is_boiling_point?
, etcen el caso de localización GPS, que podríamos necesitar métodos como
distance_from(point)
,route_to(point)
, etc
por lo que es bastante útil cuando podemos simplemente crear las clases para estos objetos, y usar composed_of para inicializar estos objetos sobre la marcha
espero que ayude =)
So compuesto_de inicializa el obj que sale del db. ¿Puedes asignar el mismo objeto PARA IR AL Db? obj.temperature = my_temp_obj. Y si es así, ¿a qué método llama el valor obj para convertirlo al formato db, sea ese int, varchar, etc.? – pixelearth
hi @pixelearth, como se mencionó, los valores no se almacenan en la base de datos =) – Staelen
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.
- 1. ¿Cuándo usar == y cuándo usarlo?
- 2. CompositeWPF: EventAggregator: ¿cuándo usarlo?
- 3. @ModelAttribute anotación, ¿cuándo usarlo?
- 4. Google App Engine: cuándo usarlo, cuándo no?
- 5. ¿Para qué es <spring:bind>? ¿Cuándo usarlo y cuándo no usarlo?
- 6. ¿Qué es la delegación? ¿Cuándo querría usarlo?
- 7. ¿Qué es Request.InputStream y cuándo usarlo?
- 8. ¿Qué es __declspec y cuándo debo usarlo?
- 9. ¿Qué es ICustomTypeDescriptor y cuándo usarlo?
- 10. amigo en el operador == o << ¿cuándo debería usarlo?
- 11. ¿Qué significa "sin firmar" en MySQL y cuándo usarlo?
- 12. Parámetro resuelto en Unity. ¿Alguien puede explicar cuándo usarlo?
- 13. ¿Cuándo puedo eliminar un archivo después de usarlo en Response.WriteFile()?
- 14. Observadores de rieles: cuándo y cuándo no utilizar observadores en rieles
- 15. Cuándo usar "" (espacio) y cuándo usarlo. (punto) al invocar métodos en Scala?
- 16. ¿Qué es el bean scope y cuándo usarlo?
- 17. ¿Para qué sirve AppDelegate y cómo sé cuándo usarlo?
- 18. ¿Qué es un MvcHtmlString y cuándo debería usarlo?
- 19. explicación de D_GNU_SOURCE ¿Por qué usarlo y cuándo?
- 20. ¿Qué es un simulacro y cuándo deberías usarlo?
- 21. ¿Qué es un ÍNDICE ESPACIAL y cuándo debería usarlo?
- 22. ¿Para qué sirve XML y cuándo debería usarlo?
- 23. espectador de vista de lista de Android. cuándo usarlo, y cuándo no a
- 24. Rieles: ¿Cuándo un modelo? Cuando una lib?
- 25. ¿Cuándo y dónde necesito archivos en una aplicación de rieles?
- 26. Cuándo crear un nuevo controlador en los rieles
- 27. Cuándo usar @ en una vista de rieles y cuándo usar un símbolo?
- 28. python y ruby: ¿para qué usarlo?
- 29. ¿Qué es un "Trabajo" (proceso secundario) en Windows y cuándo usarlo?
- 30. Map.Entry: cómo usarlo?
Hay un buen ejemplo en los comentarios de esta página. – ryeguy
@ryeguy, gracias, léelo antes de publicarlo, pero no demuestra ni analiza dónde te beneficiarías de él. (Falta la vista de nivel superior.) – fig
Ha leído éste http://api.rubyonrails.org/classes/ActiveRecord/Aggregations/ClassMethods.html? – Corey