2011-08-10 32 views
1

私はnumber_to_currencyを使用して合計を返すようにしようとしているが、私はrakeタスクまたはモデルクラスのインスタンス内でこのメソッドを使用しようとするたびに、私は未定義のメソッドエラーが

NoMethodError: undefined method 'number_to_currency' for main:Objectはコンソールで発生し得ますあまりにも。私がレーキのタスクやモデルの中で基本的な方法を使用できない理由についての提案はありますか?

答えて

2

number_to_currencyはビューヘルパーであるため、通常はビュー内でのみ使用できます。あなたはどこか別の場所にそれを使用する必要がある場合は、クラス内の

include ActionView::Helpers::NumberHelper 

:あなたはこれを行うことができます。ビューのヘルパーを使用して、コンソールで邪魔にならないようにデザインを2回考えてください。通常は、書式設定をエッジ(ビュー)にプッシュする必要があります。ここで

1

は、それがどのように動作するかです:

は コピーfixenum_extensions.rbという名前のファイルを作成/そのファイルに以下のコードを貼り付け、フォルダレールROOT/libに/ core_extensionsそこで してください。あなたのenvironment.rbにファイルで 、このラインを置く:

RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT) 

そして、この行:

require "#{RAILS_ROOT}/lib/core_extensions/fixnum_extensions" 

そして、あなたのアプリケーション

### 

require 'rubygems' 
require 'action_view' 

class Fixnum 
    def to_currency(options = {}) 
    ActionView::Base.new.number_to_currency(self, options) 
    end 
end 

### 
を再起動します
関連する問題