【发布时间】:2012-02-23 05:24:34
【问题描述】:
我想将电子邮件帐户信息存储在 config.yml 文件中。我正在按照我在网上看到并概述at this RailsCast 的常见模式将该信息加载到Rails config/initializers 文件中的常量中。我正在尝试使用 config/application.rb 文件中的 config.action_mailer.smtp_settings 为 Action Mailer 设置默认值,遵循Mat Harvard's Blog 上的示例。启动我的 Rails 服务器时,我不断收到未初始化的常量错误。我假设 application.rb 在配置/初始化程序之前被调用。是否有其他位置可以在启动期间设置 config.action_mailer.smtp_settings,但在 config/initializers 运行之后?
更新: 我在最初的帖子/问题中可能不清楚。我正在读取初始化程序中的 config.yml 文件。此配置文件存储电子邮件帐户信息,例如用户名和密码。我不想将此信息(用户名和密码)放在 application.rb 或 environment.rb 文件中。我确实尝试将我的代码移动到 environment.rb 文件,但在启动 rails 时遇到了相同的未初始化常量错误。
我设置动作邮件设置的代码如下所示:
config.action_mailer.smtp_settings = {
:address => APP_CONFIG[:email_config][:address],
:port => APP_CONFIG[:email_config][:port],
:domain => APP_CONFIG[:email_config][:email_domain],
:user_name => APP_CONFIG[:email_config][:user_name],
:password => APP_CONFIG[:email_config][:password],
:authentication => :plain,
:enable_starttls_auto => true
}
config.action_mailer.default_url_options = {
:host => APP_CONFIG[:email_config][:host]
}
我正在读取 config.yml 文件以在 load_config.rb 初始化程序中设置 APP_CONFIG 常量。该文件包含以下两行:
raw_config = File.read(RAILS_ROOT + "/config/config.yml")
APP_CONFIG = YAML.load(raw_config)[RAILS_ENV]
【问题讨论】:
标签: ruby-on-rails