Предварительный просмотр устройства не найден - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь получить предварительный просмотр devise mailer, но когда он не работает.

Я следовал этому руководству по рельсам , и это не кажется сложным, и многие вещи нужно делать.

У Devise уже есть класс почтовика здесь

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

Я сгенерировал свои разработки в хранилище app/views/users/mailer/

У меня есть devise.rb, который выглядит так

Devise.setup do |config|
# ==> Mailer Configuration
  # Configure the e-mail address which will be shown in Devise::Mailer,
  # note that it will be overwritten if you use your own mailer class
  # with default "from" parameter.
  config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'

  # Configure the class responsible to send e-mails.
  config.mailer = 'Devise::Mailer'
  # Configure the parent class responsible to send e-mails.
  #config.parent_mailer = 'ActionMailer::Base'
end

У меня есть test/mailers/previews/devise_mailer_preview.rb

class DeviseMailerPreview< ActionMailer::Preview

  def confirmation_instructions
    Devise::Mailer.confirmation_instructions(User.first, "faketoken")
  end

  def reset_password_instructions
    Devise::Mailer.reset_password_instructions(User.first, "faketoken")
  end

end

Я не изменил путь config.action_mailer.preview_path в моем application.rb, потому что test/mailers/previews - это путь по умолчанию

Так что теперь, когда я пытаюсь получить доступ к http://localhost:3000/rails/mailers, у меня есть белая пустая страница иесли я попытаюсь http://localhost:3000/rails/mailers/users/mailer/confirmation_instructions У меня будет эта ошибка Mailer preview 'users/mailer/confirmation_instructions' not found

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

Это кажется таким легким, но я не могу добиться успеха ...

1 Ответ

0 голосов
/ 28 октября 2019

Хорошо, я узнал почему.

Поскольку я использую гем rspec-rails, хранилище test заменено на tp spec Мне просто нужно было переместить мой test/mailers/previews/devise/mailer_preview.rb в spec/mailers/previews/devise/mailer_preview.rb ивсе еще не нужно менять конфигурацию config/application.rb

Надеюсь, это поможет некоторым людям

также обратите внимание, что в rails 6 ваш предварительный просмотр программы разработки должен быть написан с модулем

module Devise
class MailerPreview< ActionMailer::Preview

  def confirmation_instructions
    Devise::Mailer.confirmation_instructions(User.first, "faketoken")
  end

  def reset_password_instructions
    Devise::Mailer.reset_password_instructions(User.first, "faketoken")
  end

end
end
...