【问题标题】:Rails 4, ActionMailer: dynamic configRails 4,ActionMailer:动态配置
【发布时间】:2015-05-21 10:52:03
【问题描述】:

对于想要在他的 Rails 4 应用程序中使用联系表的客户,我需要设置 ActionMailer 配置,但允许他从诸如 activeadmin 或简单的管理界面。

我不知道从哪里开始访问 environment.rb 或 production.rb 文件来更改这些设置。

或者是否可以在另一个可访问的文件中设置 ActionMailer 并且可以设置动态变量?

【问题讨论】:

    标签: ruby-on-rails heroku actionmailer


    【解决方案1】:

    您可以使用 rails-settings-cached gem

    https://github.com/huacnlee/rails-settings-cached

    或者

    您可以创建一个配置表并允许管理员保存他的配置设置,例如

    rails g model Config field_one:string field_two:string field_three:string

    在你的 development/production.rb 之后

    你可以使用 Config.first.first_field, Config.first.last_field

    并确保在更新列的值时,不要创建新记录,只更新最后一个。

    谢谢

    【讨论】:

    • 感谢您的回答,我喜欢您的第二种方法。但是,例如替换:config.action_mailer.smtp_settings = {地址:smtp.address,用户名:'myusername',密码:'mypassword'}。是不是太深了?或者我可以做类似 rails g model Config address:string 并在 config.action_mailer.smtp_setting = { address: Config.address... } 等中调用它吗?
    • 你不能直接调用Config.address,你必须使类方法像def self.address last.address end 现在你可以直接调用Config.address。谢谢,如果您觉得我的回答对您有帮助,请点个赞
    • 它可以工作,但不能同时工作。我必须将 actionmailer 设置放在初始化程序中,每次更改数据库中的设置时,我都需要重新启动服务器(因为初始化程序)。我也尝试部署到heroku,但出现了很多错误。我正在寻找其他选择。如果你有什么建议?谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-02-20
    • 2013-09-18
    • 2015-02-11
    • 1970-01-01
    • 2010-10-22
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多