web-dev-qa-db-ja.com

新規Rails 4.1メーラープレビューアクションが見つかりませんエラー

Railsには607の未解決の問題があります...だから、私は最初にここで試してみましたが、その穴をさらに塞ぐのではなく。 4.1にアップグレードし、Railsメーラープレビューを実装しています。既存のメーラーをアップグレードして、tests/mailers/previewsディレクトリを追加しようとしました。次のエラーが発生した場合は、新しいメーラーを生成しようとしました。同じエラー。

 class NotifierPreview < ActionMailer::Preview
    def welcome
      Notifier.welcome(User.first)
    end
  end

このエラーが発生します:

 The action 'notifier' could not be found for Rails::MailersController

私はグーグル、ドキュメント、スタックオーバーフローを検索しようとしましたが、このエラーを回避するものは何もありません。

誰かがこれを経験したり、何かアイデアがありますか?

24
hellion

これは、UserMailerNotifierPreviewを使用しているためです。 NotifierPreviewUserMailerPreviewに変更すると、動作を開始します。実装例を確認してください https://github.com/RichIsOnRails/ActionMailerPreviewsExample およびチュートリアル。

乾杯!!

7
maximus ツ

デフォルトのプレビューパスは/test/mailers/previewsしかし、rspecはこれをオーバーライドして/spec/mailers/previews

次の方法で、パスを好きなように設定できます。

config.action_mailer.preview_path = "#{Rails.root}/test/mailers/previews"
66
Calvin

Rspecを使用している場合は、rspec-Rails gemは開発環境にロードされています。そうでない場合、Railsは、/ specではなく/ testフォルダーの下でプレビューを検索します。

5
Samuel

行を削除します

get '/:controller(/:action(/:id))'
get '/:controller(/:action(/:id))(.:format)'

あなたのroutes.rbから

@hellionが前の回答へのコメントで述べているように、これがこの問題の解決策です。

4
LpLrich