7

の下にいくつかのメーラーのプレビューがありspec/mailer/previewsます。developmentで、下のすべてのプレビューを表示できます/rails/mailers/。ただし、デフォルトでは、この機能は他の環境には存在しません。

私は環境でそれを有効にしたかったので、この投稿stagingからキューを取りましたここ.

次の変更を加えました-

config/routes.rb

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

config/environments/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):

奇妙なことに、そのファイルは確実に存在します。そして、ステージング時にオートロードパスを確認すると、そのファイルは間違いなく配列/リストにあります。

ここで何が起こっているのか、またはそのエンドポイントを公開するにはどうすればよいかについて何か考えはありますか?

ありがとう!

4

3 に答える 3

4

実行している Rails のバージョンによって異なりますが、4.2 以降を使用している場合は、次の行を追加するstaging.rbと役立ちます。

config.action_mailer.show_previews = true
config.consider_all_requests_local = true
于 2016-08-31T18:19:28.517 に答える
2

もう 1 つのオプションは、https://mailtrap.io/などのサービスを使用し て、スパムや応答性分析などの電子メールに関する興味深い情報を取得することです。これは、ステージング環境に最適なオプションであることがわかりました。

于 2016-09-04T09:57:20.873 に答える