質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

1回答

2769閲覧

開発中のrailsアプリでmailerのプレビューを表示させた時にエラーが発生する。

tokushun109

総合スコア12

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2020/01/31 03:33

前提・実現したいこと

railsの初学者で質問内容に不備があれば申し訳ありません。

現在railsでアプリケーションを作成しており、その中でユーザーがパスワードを忘れてしまった時に、パスワードの再設定リンクが載っているメールをユーザーに送信し、そのリンクで新しいパスワードを設定するという機能を付けようとしています。

その機能を実装するに当たって、まずはメールのプレビューが表示されるかを確認しようと思い、rails tutorialを参考に環境の設定を行なった後
http://localhost:3000/rails/mailers/user_mailer/password_reset」
にアクセスしたところ、以下のエラーが発生しております。

発生している問題・エラーメッセージ

Unknown action Mailer preview 'user_mailer/password_reset' not found

該当のソースコード

config/environments/development.rb

. . . config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :test host = 'localhost:3000' config.action_mailer.default_url_options = { host: host, protocol: 'http' } config.action_mailer.perform_caching = false . . .

app/views/user_mailer/password_reset.html.erb

<h1>User#password_reset</h1> <p> <%= @greeting %>, find me in app/views/user_mailer/password_reset.html.erb </p>

app/mailers/user_mailer.rb

class UserMailer < ApplicationMailer # Subject can be set in your I18n file at config/locales/en.yml # with the following lookup: # # en.user_mailer.password_reset.subject # def password_reset @greeting = "Hi" mail to: "to@example.org" end end

spec/mailers/previews/user_mailer_preview.rb

# Preview all emails at http://localhost:3000/rails/mailers/user_mailer class UserMailerPreview < ActionMailer::Preview # Preview this email at http://localhost:3000/rails/mailers/user_mailer/password_reset def password_reset UserMailer.password_reset end end

試したこと

・エラーにてuser_mailer/password_resetが見つからないとのことですが、viewにuser_mailer/password_resetがあることは確認しております。
・テストにRSpecを使用しており、previewのデフォルトの参照先が、specディレクトリになっていない可能性があるとの記事を見つけたため、config/environments/development.rbに

config.action_mailer.preview_path = "#{Rails.root}/spec/mailers/previews"

を追記しましたがダメでした。

・gemでrspec-railsがtest環境にしか入っていないことが問題ではと考え、

group :development, :test do  ・  ・  ・ gem 'rspec-rails' end

を追加しましたがエラーでした。

ご教授いただければ幸いです。
何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

理由は確定していませんが、自己解決しました。
ローカルのDokcer環境でrailsを作成しているのですが、
「docker-compose up」をやり直したところ、エラーが改善しました。

投稿2020/01/31 06:53

tokushun109

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問