ruby-on-rails – 如何在config / initializers运行后设置Action Mailer默认值?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何在config / initializers运行后设置Action Mailer默认值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将电子邮件帐户信息存储在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' }

猜你在找的Ruby相关文章