Подтвердить что ты не робот

Новые рельсы 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, документы, переполнение стека, но ничего не ускользает от этой ошибки.

Кто-нибудь испытывает это или имеет какие-то идеи?

4b9b3361

Ответ 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.