什么时候应该使用 ActiveRecord 的composed_of
类方法?
user65663
问问题
9335 次
2 回答
26
就个人而言,我认为当您有未存储在数据库中的对象时,这很有用,如数据库中所示,例如温度、gps 位置、平衡等。
你可能会问为什么那些不存储在数据库中?在数据库中,我们只存储一个值,但如果我们想为该值附加有用的相关方法,
例如
在温度的情况下,我们可能需要像
to_fahrenheit
,to_celsius
,is_boiling_point?
, 等等这样的方法在 GPS 定位的情况下,我们可能需要诸如
distance_from(point)
,route_to(point)
等方法
因此,当我们可以为这些对象创建类并使用composer_of动态初始化这些对象时,它非常有用
希望它有帮助 =)
于 2010-04-27T04:45:13.720 回答
4
如何使用 Money 的更composed_of
复杂示例:
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") }
来源:github 维基。
于 2011-11-12T10:46:23.150 回答