在rails项目中使用finance gem

时间:2012-07-13 22:36:01

标签: ruby-on-rails ruby-on-rails-3 rubygems gem

我正在尝试将“finance”gem用于rails项目。我已经通过编辑我的Gemfile并使用“bundle install”成功安装了gem。我已经列出了这一行:

application_controller.rb

include Finance

这允许我访问控制器中的finance gem功能。但是,我的数字还在继续。如果您转到以下链接,您可以看到如何创建Rate对象并使用它来查找摊还的简单示例:

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

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

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

...这会抛出错误“错误的参数类型Flt :: DecNum(期望的标量数字)”

正在进行的是我传入Rate的值“0.0425”显然是Float / DecNum,但是它期待一个Numeric对象。如果我使用下面的代码将数字转换为数字类型,则错误消失但创建的Rate对象实际上无法正常工作:

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

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

1 个答案:

答案 0 :(得分:2)

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

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

所以,解决方案,至少现在是不要将这个gem用于Rails,仅用于纯Ruby。我相信作者明白这一点,但我忽略了一些事情。

谢谢!