2011-08-10 23 views
1

我試圖返回使用number_to_currency的總和,但每當我試圖用這個方法rake任務或模型類的實例中,我得到NoMethodError: undefined method 'number_to_currency' for main:Object在耙任務和模型方法未定義的方法錯誤

偏偏控制檯太。關於爲什麼我不能在耙子任務或模型中使用基本方法的任何建議?

回答

2

number_to_currency是一個視圖助手,所以它通常只在視圖中可用。你可以這樣做:

include ActionView::Helpers::NumberHelper 

如果你需要在別的地方使用它,想想你的設計,不過,使用視圖助手,而在控制檯中搞亂是好的,但你通常想把你的格式化到邊緣(即視圖)。

1

下面是它如何工作的:

使文件夾鋼軌ROOT/lib目錄/ core_extensions 在那裏,創建一個名爲fixenum_extensions.rb 文件複製/粘貼下面的代碼到該文件。 在你的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 

###