2014-09-30 1 views
6
class UserPreview < ActionMailer::Preview 
    # Accessible from http://localhost:3000/rails/mailers/notifier/welcome_email 
    def welcome_email 
    UserMailer.welcome_email(User.first) 
    end 
end 

У меня есть этот простой просмотр почтовой программы с использованием Ruby on Rails 4.1.Какие маршруты мне нужно настроить для предварительного просмотра электронной почты с помощью Rails 4.1 ActionMailer :: Preview?

Если я закомментируйте, все маршруты в моем routes.rb файл и оставить только это, почтовая программа просмотра работы:

MyTestApp::Application.routes.draw do 

end 

Так, очевидно, один из моих прав привыкает, прежде чем Rails по умолчанию один для почтовой программы предварительные просмотры.

Что мне нужно для ввода в маршрут rb-файла?

ответ

15

Я знаю, что это старый вопрос, но решил, что я все равно отправлю ответ.

Я предполагаю, что у вас есть маршрут, похожий на это ближе к концу вашего routes.rb файла:

match '/:controller(/:action(/:id))' 

Это является «поймать всех» маршрут. Код рельсов добавляет маршруты предварительного просмотра почтовых отправлений до конца маршрутов, поэтому они никогда не достигаются из-за маршрута «поймать все».

Похоже, что маршрут «поймать все» может быть удален в рельсах 5.0? Вероятно, это хорошая идея, чтобы просмотреть ваши маршруты, чтобы вам не нужно было «поймать всех». Вот ссылка на вопрос, где кто-то упоминает, что «улов всех» в какой-то момент удаляется: https://github.com/rails/rails/issues/15600

Итак, вот исправление. Используйте на свой страх и риск!

Вставьте маршруты почтовой рассылки до того, как вы «поймаете все».

get '/rails/mailers' => "rails/mailers#index" 
    get '/rails/mailers/*path' => "rails/mailers#preview" 

Это позволит вашим почтовым службам работать, и ваш «поймать все» продолжит работу. Теперь это полный файл hack, который должен использоваться только до тех пор, пока вы не сможете исправить проблему с корнем, что устраняет необходимость в маршруте «поймать все».

Я нашел следующее в списке проблем для рельсов, который выглядит как принятый и объединенный. Не знаете, в какой версии он находится, но похоже, что они обновили код предварительного просмотра почтовой программы, чтобы добавить маршруты, а не добавлять их.

https://github.com/rails/rails/pull/17896/files

Успехов!