0

使用 APP_CONFIG 存储系统范围访问的值,效果很好,但不适用于 ActionMailer 电子邮件视图。 有谁知道如何解决这个问题?

在 load_config.rb (配置文件夹)中,我像这样加载它:

APP_CONFIG = YAML.load_file("#{Rails.root}/config/application.yml")[Rails.env]

然后在我的 Mailer 视图(HAML)中,我尝试像在我的应用程序中一样定期使用它们,例如:

Welcome to our application named:
= APP_CONFIG['app_name']

我将如何访问我在操作邮件视图中的所有 APP_CONFIG 值?

4

2 回答 2

1

尝试这样的事情:

应用程序/控制器/user_controller.rb

def some_method
  app_name = APP_CONFIG['app_name']
  UserMailer.welcome_mail(app_name).deliver
end

应用程序/邮件程序/user_mailer.rb

class UserMailer < ActionMailer::Base
  default :from => "info@mypage.com"
  def welcome_mail(app_name)
    @app_name = app_name
    mail(:to => "test@mypage.com", :subject => "[system] User Welcome!")
  end
end

应用程序/视图/user_mailer/welcome_mail.html.haml

%p Welcome to our application named:
=@app_name

我认为它应该工作。

于 2013-06-24T04:23:38.913 回答
1

我这样修复它:

default: &default
  app_name:         "My APP"
  app_mail:         "info@..."

development:
  <<: *default
  ...

production:
  <<: *default
  ...

问题是它使用的是 RAILS_ENV 并且我没有将默认部分合并到生产和开发模式中,像这样它很干净,你可以做 APP_CONFIG["any_var"] 具有默认(全局)的存储谷歌分析等以及正在开发和生产中的特定于 ENV 的 :)

于 2013-06-24T07:46:17.697 回答