Ruby on Rails 中文 Wiki
Rails2_0新特性_不再将乱七八糟的东西丢进您的Environment文件

今天Rails 再次发布了一套小而有效的 代码整理更新 。 我肯定我们大家都在 environment.rb 文件下面丢放了很多的设置代码,比如 时态,电子邮箱设定 等等… 这里是在我的项目中 出现在environment 文件最下面部分的几行代码:

# Mail
ActionMailer::Base.delivery_method = :sendmail
...

# 个例的提醒
ExceptionNotifier.exception_recipients = %w(ryan@me.com)
...

# 各种引擎设置 (engine config)
...

# 定制日期格式
ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:concise => "%d.%b.%y")
..

在看过 Rails::Initializer 代码块的结构以及简洁的代码后,一定觉得反而乱吧?其实,您可以将零散的初始化代码放在 config/initializers/ 目录。在 Rails::Initializer 开始运行后,它们一个个的都会拉出来被读取。

那么现在您可以为每一项初始化任务建立一个单一文件,从而不必继续”污染“您的environment文件:

示例 config/initializers/mail.rb:

ActionMailer::Base.delivery_method = :sendmail
ActionMailer::Base.default_charset = "utf-8" 

示例 config/initializers/date_formats.rb:

ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:concise => "%d.%b.%y")
ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:medium => "%b %e, %Y")

剩下的任务就是去打扫您的”环境” (environment.rb) 了 :-)

请注意,在应用程序启动的过程中,所有的预设文件都将被自动读取。而那些针对于某一个特定开发环境(比如开发,测试或者生产)的初始化设置,则不宜放在如此的文件里。

感谢 Yudi 提供本系列文档

原文作者是 Ryan Daigle, 请访问他的博客

本条目被以下条目链接: