我正在尝试格式化Thu, 10th Jan 2016
之类的日期。我写了一个方法来获取当前时间,并使其显示为上述格式。
def time_format(ob_created_at)
ob_duplicate = ob_created_at
ob_duplicate = ob_created_at.strftime("%a")
day = ob_created_at.strftime("%d")
day = day.to_i.ordinalize
ob_duplicate = ob_duplicate + day + ob_created_at.strftime("%b %Y")
end
t = Time.now
time_format(t)
day
是字符串。我尝试转换为int,并在其上应用ordinalize
。它引发了一个未定义的方法错误。
答案 0 :(得分:6)
ordinalize
不是Ruby方法,但它是由Rails'提供的方法。 function auto_loader($classname) {
//search in the classes folder for a class file.
include 'classes/' . $classname . '.php';
}
function auto_load_somethingelse($class){
//include here
}
//register the autoloaders
spl_autoload_register('auto_loader');
spl_autoload_register('auto_load_somethingelse');
宝石。
我认为,当你需要的只是一个简单的方法时,将ActiveSupport
gem添加到项目中是不值得的。查找其实施here,另请注意上面的ActiveSupport
。
您只需要这两种方法:
ordinal
答案 1 :(得分:1)
Fixnum#ordinalize
不在ruby核心库中。请参阅Ruby Doc。
Fixnum#ordinalize
是 Active Support 的一部分,它是Rails的依赖项,因此您可以在Rails应用程序中免费使用此方法,但在非rails项目中,您必须安装有效支持,至少需要active_support/core_ext/integer/inflections
才能访问它。