我正在尝试将“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,但似乎会产生一些错误,因为我传递的数字类型错误。任何人都可以提供任何帮助吗?
答案 0 :(得分:2)
由于这个问题没有得到关注,我想发布我的解决方案以防其他人遇到这个问题。
所以,我最终没有使用这个宝石,只是自己编写方法。原因是这个gem是专为Ruby而不是Rails编写的。其他用户得到了与我相同的错误,如果你在Rails网站上使用它,唯一的解决办法是破解gem中的实际代码。
所以,解决方案,至少现在是不要将这个gem用于Rails,仅用于纯Ruby。我相信作者明白这一点,但我忽略了一些事情。
谢谢!