ruby-on-rails – 在非开发层上预览Mailers

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在非开发层上预览Mailers前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在spec / mailer / previews下有几个邮件预览.在开发中,我可以查看/ rails / mailers /下的所有预览.但是,默认情况下,此功能在其他环境中不存在.

我想在登台环境中启用它并从this post here开始排队.

我做了以下更改 –

配置/ routes.rb中

# Add the routes manually
if Rails.env.staging?
  get "/rails/mailers" => "rails/mailers#index"
  get "/rails/mailers/*path" => "rails/mailers#preview"
end

配置/环境/ staging.rb

Rails.application.configure do
  # Define the mailer preview path
  config.action_mailer.preview_path = "spec/mailers/previews"

  # Specifically add that path and all files under it to the autoload paths
  config.autoload_paths = Dir["#{config.root}/#{config.action_mailer.preview_path}/**"]
end

class ::Rails::MailersController
  include Rails.application.routes.url_helpers

  # Override the method just for this controller so `MailersController` thinks
  # all requests are local.
  def local_request?
    true
  end
end

但是在暂存时,我在尝试加载/ rails / mailers页面时遇到以下错误

LoadError (No such file to load -- spec/mailers/previews/admin_mailer_preview):

奇怪的是……那个文件肯定存在.当我检查分段上的自动加载路径时,该文件肯定在数组/列表中.

有关这里可能发生的事情的任何想法,或者我应该如何揭露该端点?

谢谢!

解决方法

这取决于你运行的Rails版本,但如果你在4.2上将这些行添加到staging.rb应该有帮助:
config.action_mailer.show_previews = true
config.consider_all_requests_local = true
原文链接:https://www.f2er.com/ruby/265449.html

猜你在找的Ruby相关文章