Edge Rails 的更新: 不再将乱七八糟的东西丢进您的 Environment 文件

Posted by yudi
on Sunday, December 16

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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:

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

示例 config/initializers/date_formats.rb:

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

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

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

原文作者是 Ryan Daigle, 请访问他的博客
本片译文的原文地址:http://ryandaigle.com/articles/2007/2/23/what-s-new-in-edge-rails-stop-littering-your-evnrionment-rb-with-custom-initializations

Comments

Leave a response