我目前通过安装了money gem money-rails
,它运行良好。我有一个名为的货币化对象:default_price
,:default_price_cents
并且正在使用一:currency
列来定义货币。我还有一个:default_packs
列,它是一个用户定义的已货币化整数,以及一个 Pack 模型,它每天存储一个新条目,其中包含一:date
列和一:amount
列。
这是我的user.rb
has_many :packs
register_currency :usd
monetize :default_price_cents, with_model_currency: :currency
monetize :default_price, with_model_currency: :currency
monetize :daily_saving_potential, with_model_currency: :currency
monetize :total_saving_potential, with_model_currency: :currency
monetize :total_money_spent, with_model_currency: :currency
monetize :total_savings, with_model_currency: :currency
def daily_saving_potential
return default_price * default_packs
end
def total_saving_potential
days = self.packs.count
return days * daily_saving_potential
end
def total_money_spent
amount = self.packs.map(&:amount).sum
return amount
end
def total_savings
return total_saving_potential - total_money_spent
end
问题
total_money_spent
对我的 Pack 模型中 :amount 字段的所有条目求和。问题出现了,total_savings
在我看来,当被调用时,我收到一个错误消息Unknown Method "exchange_to" for 0:fixnum
。
有趣的是,如果我使用:default_price_cents
而不是:default_price
in daily_saving_potential
,则不会出现错误,但是模型中的自定义字段显示默认货币而不是用户定义的货币,而该default_price
字段显示定义的正确货币由用户。也许问题与我将货币对象与我的 Pack 模型中的非货币对象相乘这一事实有关?无论如何,当我减去total_money_spent
fromtotal_saving_potential
如果您需要更多信息,请告诉我,非常感谢所有帮助!