前提・実現したいこと
RubyonRails6.0.0でActiveMailerを使用して定刻に自動でメールが送信できるアプリを製作中です。
Mailerでプレビューを表示させた時にエラーが発生します。
発生している問題・エラーメッセージ
Unknown action Mailer preview 'user_mailer' not found
該当のソースコード
app/mailers/user_mailer.rb
ruby
1class UserMailer < ApplicationMailer 2 def trends(user) 3 @user = user 4 mail to: @user.email.to_s, subject: '今月の業界動向' 5 end 6end
test/mailers/previews/user_mailer_preview.rb
ruby
1# Preview all emails at http://localhost:3000/rails/mailers/user_mailer 2class UserMailerPreview < ActionMailer::Preview 3 # Preview this email at (http://localhost:3000/rails/mailers/user_mailer/trends) 4 def trends 5 UserMailer.trends(User.first) 6 end 7end
config/environments/development.rb
ruby
1Rails.application.configure do 2 config/application.rb. 3 4 5 config.cache_classes = false 6 7 8 config.eager_load = false 9 10 11 config.consider_all_requests_local = true 12 13 14 if Rails.root.join('tmp', 'caching-dev.txt').exist? 15 config.action_controller.perform_caching = true 16 config.action_controller.enable_fragment_cache_logging = true 17 18 config.cache_store = :memory_store 19 config.public_file_server.headers = { 20 'Cache-Control' => "public, max-age=#{2.days.to_i}" 21 } 22 else 23 config.action_controller.perform_caching = false 24 25 config.cache_store = :null_store 26 end 27 28 29 config.active_storage.service = :local 30 31 32 config.action_mailer.raise_delivery_errors = false 33 34 config.action_mailer.perform_caching = false 35 36 37 config.active_support.deprecation = :log 38 39 40 config.active_record.migration_error = :page_load 41 42 43 config.active_record.verbose_query_logs = true 44 45 46 config.assets.debug = true 47 48 49 config.assets.quiet = true 50 51end
試したこと
rspecを導入している為、プレビューファイルのディレクトリがtestからspecに変わっている可能性を疑い、確認しましたがtest/mailers/previews/user_mailer_preview.rbの配置でした。
補足情報(FW/ツールのバージョンなど)
- ruby 2.6.5
- rubyonrails 6.0.0
- RSpec 3.9
- rspec-core 3.9.2
- rspec-expectations 3.9.2
- rspec-mocks 3.9.1
- rspec-rails 4.0.1
- rspec-support 3.9.3
エラー解決のアドバイスいただきたく、何卒よろしくお願いします。
あなたの回答
tips
プレビュー