我想将电子邮件帐户信息存储在config.yml文件中.我将这些信息加载到Rails配置/初始化文件中的常量,遵循我在网上看到并概述了
at this RailsCast的常见模式.我正在尝试使用config / application中的config.action_mailer.smtp_settings为Action Mailer设置默认值.rb文件,遵循
Mat Harvard’s Blog上的示例.启动rails服务器时,我一直收到未初始化的常量错误.我假设在配置/初始化器之前调用application.rb.是否有另一个位置,我可以在启动期间设置config.action_mailer.smtp_settings,但在配置/初始化程序运行后?
更新:
我在最初的帖子/问题中可能不太清楚.我在初始化程序中读取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常量.该文件包含以下2行:
raw_config = File.read(RAILS_ROOT + "/config/config.yml") APP_CONFIG = YAML.load(raw_config)[RAILS_ENV]
解决方法
你可以把这样的东西放在初始化器中:
ActionMailer::Base.default_url_options = { :host => 'mysite.com' }