我使用money gem代表我的Product模型中的money字段。 这是我的代码:
产品型号:
composed_of :price,
:class_name => "Money",
:mapping => [%w(price 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") }
我的表单视图:
<li>
<%= f.select(:currency,all_currencies(Money::Currency::TABLE), {:include_blank => 'Select a Currency'}, :class => "styled" )%>
</li>
在我的产品帮助
中def all_currencies(hash)
hash.inject([]) do |array, (id, attributes)|
array ||= []
array << [attributes[:name], attributes[:iso_code]]
array
end
end
非常感谢任何帮助。
=====解决方案:====
在我的帮助方法中,我需要在数组中获得[:symbol]属性..
def all_currencies(hash)
hash.inject([]) do |array, (id, attributes)|
array ||= []
array << [attributes[:name], attributes[:iso_code],attributes[:symbol]]
array
end
end