首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >rails 4电子邮件预览在生产中

rails 4电子邮件预览在生产中
EN

Stack Overflow用户
提问于 2014-12-12 23:12:19
回答 5查看 5.9K关注 0票数 13

我使用rails 4.1.1和ActionMailer::预览电子邮件。在开发环境中,一切都运行得很好。

但是在生产环境中,预览路径是不可访问的。我将预览存储在test/mailers/preview/

是否有可能使他们生产?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-07-24 19:08:03

此外:

代码语言:javascript
运行
复制
config.action_mailer.show_previews = true

您还需要设置

代码语言:javascript
运行
复制
config.consider_all_requests_local = true

在您的环境中,预览路由是可访问的。这也有其他含义(参见https://stackoverflow.com/a/373135/1599045),因此您可能不希望在生产中启用此功能。但是,如果您有一个非development的自定义环境,那么这两种环境的结合应该可以正常工作。

编辑以添加:

最初的问题是rails 4.1.1,它没有可用的config.action_mailer.show_previews。要使ActionMailer预览在rails 4.1.1中的非开发环境中工作,首先需要向config/routes.rb添加一些路由(在本例中,我的环境名为custom):

代码语言:javascript
运行
复制
if Rails.env.custom?
  get '/rails/mailers'         => "rails/mailers#index"
  get '/rails/mailers/*path'   => "rails/mailers#preview"
end

然后,您需要自动加载环境的配置文件(在我的例子中是config/environments/custom.rb)中所需的库:

代码语言:javascript
运行
复制
config.action_mailer.preview_path ||= defined?(Rails.root) ? "#{Rails.root}/test/mailers/previews" : nil
config.autoload_paths += [config.action_mailer.preview_path]

这似乎与config.action_mailer.show_previews执行相同的任务。

与4.2一样,您仍然需要调整本地请求配置,这取决于您的自定义环境是在本地使用还是在服务器上使用。

票数 16
EN

Stack Overflow用户

发布于 2016-09-08 19:50:32

在不打开安全漏洞的情况下做这件事:

production.rb

代码语言:javascript
运行
复制
MyApp::Application.configure do
  config.action_mailer.preview_path ||= defined?(Rails.root) ? "#{Rails.root}/spec/mailer_previews" : nil
  config.autoload_paths += [config.action_mailer.preview_path]

  routes.append do
    get '/rails/mailers'         => "rails/mailers#index"
    get '/rails/mailers/*path'   => "rails/mailers#preview"
  end
end

class ::Rails::MailersController
  before_filter :authenticate_admin!
  def local_request?
    true
  end
  private
  def authenticate_admin!
    ...
  end
end
票数 15
EN

Stack Overflow用户

发布于 2017-08-06 14:35:44

最好的答案是,在config.action_mailer.show_previews = true的生产中启用预览是可能的。

我只想补充一下,你可以如何在你自己的行政区域内呈现预览。在主动管理中(Rails 5.1)

我还发现,写你自己的电子邮件预览管理并不难,而且根本不使用rails标准预览。然后,您可以添加您自己的功能,如更改预览参数或发送按钮,以查看此电子邮件在您的手机。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27453578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档