From f5132c19d52c4457aa2e09c647d2f52a73966c68 Mon Sep 17 00:00:00 2001 From: Remo Mueller Date: Thu, 26 Feb 2015 09:29:01 -0500 Subject: Mailer preview now uses `url_for` to fix links to emails for apps running on a subdirectory, closes #19092. --- actionmailer/CHANGELOG.md | 5 ++++ .../rails/templates/rails/mailers/index.html.erb | 4 +-- .../rails/templates/rails/mailers/mailer.html.erb | 2 +- railties/test/application/mailer_previews_test.rb | 30 ++++++++++++++++++++++ 4 files changed, 38 insertions(+), 3 deletions(-) diff --git a/actionmailer/CHANGELOG.md b/actionmailer/CHANGELOG.md index 0d47ce855a..f88f2c0c86 100644 --- a/actionmailer/CHANGELOG.md +++ b/actionmailer/CHANGELOG.md @@ -1,3 +1,8 @@ +* Mailer preview now uses `url_for` to fix links to emails for apps running on + a subdirectory. + + *Remo Mueller* + * Mailer previews no longer crash when the `mail` method wasn't called (`NullMail`). diff --git a/railties/lib/rails/templates/rails/mailers/index.html.erb b/railties/lib/rails/templates/rails/mailers/index.html.erb index c4c9757d57..000930c039 100644 --- a/railties/lib/rails/templates/rails/mailers/index.html.erb +++ b/railties/lib/rails/templates/rails/mailers/index.html.erb @@ -1,8 +1,8 @@ <% @previews.each do |preview| %> -

<%= link_to preview.preview_name.titleize, "/rails/mailers/#{preview.preview_name}" %>

+

<%= link_to preview.preview_name.titleize, url_for(controller: "rails/mailers", action: "preview", path: preview.preview_name) %>

<% end %> diff --git a/railties/lib/rails/templates/rails/mailers/mailer.html.erb b/railties/lib/rails/templates/rails/mailers/mailer.html.erb index 607c8d1677..c12ead0f90 100644 --- a/railties/lib/rails/templates/rails/mailers/mailer.html.erb +++ b/railties/lib/rails/templates/rails/mailers/mailer.html.erb @@ -1,6 +1,6 @@

<%= @preview.preview_name.titleize %>

diff --git a/railties/test/application/mailer_previews_test.rb b/railties/test/application/mailer_previews_test.rb index 83501a7f11..1835d42c82 100644 --- a/railties/test/application/mailer_previews_test.rb +++ b/railties/test/application/mailer_previews_test.rb @@ -454,6 +454,36 @@ module ApplicationTests assert_match '', last_response.body end + test "mailer previews create correct links when loaded on a subdirectory" do + mailer 'notifier', <<-RUBY + class Notifier < ActionMailer::Base + default from: "from@example.com" + + def foo + mail to: "to@example.org" + end + end + RUBY + + text_template 'notifier/foo', <<-RUBY + Hello, World! + RUBY + + mailer_preview 'notifier', <<-RUBY + class NotifierPreview < ActionMailer::Preview + def foo + Notifier.foo + end + end + RUBY + + app('development') + + get "/rails/mailers", {}, 'SCRIPT_NAME' => '/my_app' + assert_match '

Notifier

', last_response.body + assert_match '
  • foo
  • ', last_response.body + end + private def build_app super -- cgit v1.2.3