我计划创建一种方法,以特定方式格式化时间(俄语专门格式化)。
我想在多个模型,控制器和可能的视图中重用这个辅助方法。另外我想在Time类的实例上调用这个helper方法,如下所示:
t=Time.now
t.my_super_shiny_helper
问题:我应该在哪里实施这个助手? (模块或类,在应用程序目录结构中的位置?)。创建之后,我应该怎么称呼它?
我是ruby / rails的新手,很难以正确的方式工作。
谢谢。
答案 0 :(得分:9)
我会将文件添加到lib/time_extensions.rb
class Time
def my_shiny_helper
...
end
end
在config/intitializers
require 'time_extensions'
如果扩展稍微增加并且您想要重复使用,请考虑将其放入插件中以便于包含。甚至是宝石。
答案 1 :(得分:4)
如果您只想格式化时间,Rails中的干净方法(如敏捷Web开发中所示)是扩展to_s
方法中使用的格式:
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
:russian => "%A %d %B %Y"
)
Time.now.to_s(:russian) #=> "Tuesday 17 February 2009"
在config/environment.rb
或config/initializers
的文件中加入第一位。