rake任务和模型方法中的Undefined Method错误



我试图使用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
###

相关内容

最新更新