1

我正在尝试将“财务”宝石用于 Rails 项目。我已经通过编辑我的 Gemfile 并使用“捆绑安装”成功安装了 gem。我已经包括了这一行:

application_controller.rb

include Finance

这使我可以访问控制器中的金融 gem 功能。但是,我的数字出了点问题。如果您转到以下链接,您可以看到一个如何创建 Rate 对象并使用它来查找摊销的简单示例:

http://rubydoc.info/gems/finance/1.1.2/frames

但是,在控制器中,当我尝试使用提供的代码将 Rate 对象设置为变量时:

@rate = Rate.new(0.0425, :apr, :duration => 30.years)

...这会引发错误“错误的参数类型 Flt::DecNum (expected scalar Numeric)”

发生的事情是我传递给 Rate 的值“0.0425”显然是 Float/DecNum 但它需要一个数字对象。如果我使用下面的代码将数字转换为 Numeric 类型,错误就会消失,但创建的 Rate 对象并不能真正正常工作:

@rate = Rate.new(0.0425.to_c, :apr, :duration => 30.years)

总而言之,我只是希望能够在控制器和/或助手中使用财务 gem,但似乎会产生一些错误,因为我传递的数字类型错误。任何人都可以提供任何帮助吗?

4

1 回答 1

2

由于这个问题没有引起注意,我想发布我的解决方案,以防其他人遇到这个问题。

所以,我最终没有使用这个 gem,只是自己编写方法。原因是这个 gem 是专门为 Ruby 编写的,而不是为 Rails 编写的。其他用户遇到了和我一样的错误,如果你在 Rails 网站上使用它,唯一的解决办法是破解 gem 中的实际代码。

因此,至少目前的解决方案是不要将这个 gem 用于 Rails,仅用于纯 Ruby。我相信作者清楚地说明了这一点,但我忽略了一些事情。

谢谢!

于 2012-09-26T18:03:13.637 回答