使用Environment.rb中Initializer中声明的常量

时间:2012-10-11 12:40:19

标签: ruby-on-rails constants

基本上我想要做的是将我的电子邮件用户名和密码保存在我的environment.rb的单独文件中。我已经在其他地方使用了初始化程序来执行此操作 - 但是这里环境似乎首先被加载:

development.rb

config.action_mailer.smtp_settings = {
    :address => "smtp.example.com",
    :port => 587,
    :domain => "www.example.com",
    :authentication => "plain",
    :user_name => SMTP_USERNAME,
    :password => SMTP_PASSWORD,
    :enable_starttls_auto => true
 }

当我启动Rails服务器时出现错误:

uncaught exception: uninitialized constant SMTP_USERNAME

这是一个范围问题,因为初始化器中的常量是在环境之后声明的,我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

如果您尝试在application.rbclass Application < Rails::Application内定义常量怎么办?然后,您可以通过执行Application::SMTP_USERNAME之类的操作来访问常量。这只是猜测。