2

我正在为我的 rails 应用程序编写一个脚本,并且我正在尝试使用分隔符来格式化数字,以便它们更易于阅读。但是我在从 ActionView::Helpers::NumberHelpers 调用 number_with_delmeter 方法时遇到问题

我试过

class MyClass < ActiveRecord::base
    extend ActiveView::Helpers::NumberHelper
    def self.run
        puts "#{number_with_delimeter(1234567)}"
    end
end
MyClass.run

但它只是不起作用。我总是得到未定义的方法错误。我尝试使用 include 而不是 extend 和其他一些变体。他们都没有工作。我不知道该怎么做。

有没有办法在脚本中调用这个方法?

*注意:*我调用脚本rails r script/my_script.rb

4

1 回答 1

4

一个优雅的解决方案在于委托:

def self.run
  puts "#{helper.number_with_delimiter(1234567)}"
end

def self.helper
  Helper.instance
end

class Helper
  include Singleton
  include ActionView::Helpers::NumberHelper
end

旁注:

  • 包括模块重载你的类

  • 包括帮手没有帮助,因为你在课堂上工作。

  • 格式化不应该是模型的工作,你应该在演示者中提取这种逻辑。

于 2013-04-04T09:26:23.370 回答