konchanxxx / menta

MENTAのタスク管理用リポジトリ
0 stars 0 forks source link

Deviseでの"Forgot your password?"のエラー #73

Closed sumura80 closed 5 years ago

sumura80 commented 5 years ago

概要

Deviseを使用しており、”Forgot your password"の機能を利用すると、メールがきた時にURLをクリックするとエラーになります。

実現したいこと

Deviseの”Forgot your password"の機能を使えるようにしたい。

困っていること

"Change your password"を押すと"Not Found"エラーがです。

下記が自分の行ったプロセスです。

  1. このようにDeviseを使って Forgot your password? をクリックしたとします。

1

2.するとこのようにメールアドレスを入力する欄にいき、送信します。 2

3.そうすると自分に送信されたことが flash で表示されます。

3

4.そうすると先ほど送信した宛先にパスワードを変更できる Change my password URLが送られきます。 4

  1. しかし、このURLを押すと Not Found が表示されてしまいます。 5

/app/views/devise/passwords/edit のファイルは存在しているのですが、なぜここで Not Found になるのかが不明です。

スクリーンショット 2019-04-17 22 17 18

Request先がおかしいのかなと思っております。 /app/views/devise/passwords/edit

Railsチュートリアルを見たのですが、そこではメソッドを再設定したりしているのですが、Deviseを使っているのにそこまでするつ必要があるのかなという思っております。 https://railstutorial.jp/chapters/account_activation_password_reset?version=4.2#sec-password_resets_controller_and_form

また他のサイトでは、カスタマイズもありますが、なんか違うなと思います。 https://easyramble.com/customize-mail-template-of-devise.html

ご教示いただけませんでしょうか? よろしくお願いいたします。

konchanxxx commented 5 years ago

@sumura80 request URLなのでまずは rake routes で該当しているルーティングが定義されているか確認してみるのが先かなと思います:bow:

sumura80 commented 5 years ago

@rexitorg

rake routes を確認したところルーティングは定義されております。Deviseを使用しているので、こちらは自動で作成されている様です。

user_pass_edit

sumura80 commented 5 years ago

@rexitorg こちら解決しましたので、クローズさせていただきます。 ありがとうございました。

konchanxxx commented 5 years ago

おお良かったです。原因はなんだったか可能であれば記載をお願いします。 パスワード再設定メールに記載するURLをフルパスにする必要があったとかでしょうか?

sumura80 commented 5 years ago

原因は、productionの環境設定で、自分のドメインを設定していないことが原因でした。:sweat: config.action_mailer.default_url_options = { host: '自分で取得したドメイン' } しかも自分の場合 www も記述していなかったので、エラーが出ておりました。