1

Railsプロジェクトに「finance」gemを使用しようとしています。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 オブジェクトが必要です。以下のコードを使用して数値を Numeric 型にキャストすると、エラーはなくなりますが、作成された Rate オブジェクトは実際には正しく機能しません。

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

全体として、コントローラーやヘルパーで金融ジェムを使用できるようにしたいだけですが、渡した数値が間違ったタイプであるため、エラーが発生するようです。誰でも助けを提供できますか?

4

1 に答える 1

2

この質問は注目されなかったので、他の人がこれに遭遇した場合に備えて、私の解決策を投稿したいと思いました。

そのため、私はこのgemを使用せず、自分でメソッドを作成することになりました。その理由は、このgemがRailsではなくRuby用に特別に作成されたためです。他のユーザーは私と同じエラーを受け取りました。Railsサイトでこれを使用している場合、唯一の解決策はgemの実際のコードをハックすることでした。

したがって、解決策は、少なくとも今のところ、このgemをRailsに使用せず、純粋にRubyにのみ使用することです。私が信じる著者はこれをはっきりと述べていますが、私が見落としていたことがあります。

ありがとう!

于 2012-09-26T18:03:13.637 に答える