Monkey修补Time.strftime没有被Time类选中

时间:2012-04-04 19:51:01

标签: ruby-on-rails ruby ruby-on-rails-2 ruby-1.8

我需要在Windows上使用Rails 2.3在Ruby 1.8.7中使用Monkey patch strftime。在config \ initializers中我把这个time_patch.rb文件(code below)放了,但它似乎没有响起:

if RUBY_PLATFORM =~ /mingw32|mingw64|mswin32|mswin64/

  class Time
    alias_method :original_strftime, :strftime
    def strftime(fmt)
      hour12 = "%2d" % ((hour + 11) % 12 + 1)
      original_strftime(fmt.gsub(/%l/, hour12))
    end
  end

end

我将方法重命名为def blorping并从Rails控制台执行Time.methods但未看到新方法。

我需要做些什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

您在使用Time.methods时正在检查类方法,因此您想要的是Time.instance_methods,以确保它已正确修补。