Новые рельсы 4.1.
У Rails есть 607 открытых проблем... поэтому, вместо того, чтобы подключить эту дыру еще больше, я сначала попытаюсь попробовать. Я обновил до 4.1 и реализую предварительные просмотры почтовых отправлений. Я попробовал обновить существующую почтовую программу и добавить каталог тестов/почтовых/предпросмотр. Когда это дало следующую ошибку, я попытался создать новую почтовую программу. Такая же ошибка.
class NotifierPreview < ActionMailer::Preview
def welcome
Notifier.welcome(User.first)
end
end
приводит к этой ошибке:
The action 'notifier' could not be found for Rails::MailersController
Я пробовал искать google, документы, переполнение стека, но ничего не ускользает от этой ошибки.
Кто-нибудь испытывает это или имеет какие-то идеи?
Ответы
Ответ 1
Это потому, что вы используете UserMailer
с NotifierPreview
. Измените NotifierPreview на UserMailerPreview, и он начнет работать. Проверьте пример реализации https://github.com/RichIsOnRails/ActionMailerPreviewsExample и учебник.
Ура!!
Ответ 2
Путь предварительного просмотра по умолчанию - /test/mailers/previews
, но rspec переопределит это значение /spec/mailers/previews
Вы можете установить путь как угодно:
config.action_mailer.preview_path = "#{Rails.root}/test/mailers/previews"
Ответ 3
Удалите строку (строки)
get '/:controller(/:action(/:id))'
get '/:controller(/:action(/:id))(.:format)'
из routes.rb
Как отмечает @hellion в комментарии к предыдущему ответу, это решение этой проблемы.
Ответ 4
Если вы используете rspec, убедитесь, что камень rspec-rails
загружается в среду разработки, в противном случае Rails будет искать предварительные просмотры в папке /test, а не/spec.