我试图使用number_to_currency
返回一个总和,但每当我尝试在rake任务或模型类实例中使用此方法时,我得到NoMethodError: undefined method 'number_to_currency' for main:Object
也发生在控制台。关于为什么我不能在rake任务或模型中使用基本方法的任何建议?
number_to_currency
是一个视图助手,所以它通常只在视图中可用。你可以这样做:
include ActionView::Helpers::NumberHelper
如果需要在其他地方使用,则在类中使用
。仔细考虑一下你的设计,在控制台中使用视图助手是可以的,但你通常想把你的格式推到边缘(即视图)。
工作原理:
创建一个目录RAILS ROOT/lib/core_extensions在其中创建一个名为fixenum_extensions.rb的文件将以下代码复制/粘贴到该文件中。在你的环境中。在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
###