【问题标题】:APP_CONFIG["value"] not working inside ActionMailer mail templatesAPP_CONFIG["value"] 在 ActionMailer 邮件模板中不起作用
【发布时间】:2013-06-20 02:09:32
【问题描述】:

使用 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 值?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 views app-config actionmailer


    【解决方案1】:

    我是这样解决的:

    default: &default
      app_name:         "My APP"
      app_mail:         "info@..."
    
    development:
      <<: *default
      ...
    
    production:
      <<: *default
      ...
    

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

    【讨论】:

      【解决方案2】:

      尝试这样的事情:

      app/controllers/user_controller.rb

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

      app/mailers/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
      

      app/views/user_mailer/welcome_mail.html.haml

      %p Welcome to our application named:
      =@app_name
      

      我认为应该可以。

      【讨论】:

        猜你喜欢
        • 2014-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-17
        • 2016-05-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多