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

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

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

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby

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

Ruby on Rails

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

Q&A

解決済

1回答

2502閲覧

リダイレクトループから出られません。

mikamon0213

総合スコア2

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2021/05/07 07:57

編集2021/05/07 08:43

Ruby on Railsでインスタグラムに似せたものを作っています。
Routing Errorの原因を探り「include UsersHelper」のUsersがUserになっていたので
「s」を追加した所以下のスクショの様になってしまいました。

「s」を消せばまたRouting Errorには戻るのですが
UserHelperがおかしいとエラーが出ていますし、他に修正すべき点も見当たりませんでした。

なので、リダイレクトループを解決しようと試みたのですが
調べたことを試しても解決できませんでした。

この状況をどう解決すれば良いのかわかりません。
どなたかご教授いただけないでしょうか。

発生していたエラーメッセージ

Routing Error uninitialized constant ApplicationController::UserHelper

「s」追加後のプレビュー画面

### ログ
リダイレクトループ時のログ(以下の繰り返し)
Started GET "/sign_in" for 111.239.169.58 at 2021-05-07 16:09:44 +0900
Cannot render console from 111.239.169.58! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by UsersController#sign_in as HTML
User Load (0.3ms) SELECT users.* FROM users WHERE users.id IS NULL LIMIT 1
Redirected to https://f9f754273af44d24aceed3c212cb7a8a.vfs.cloud9.us-east-1.amazonaws.com/sign_in
Filter chain halted as :authorize rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 0.3ms)

Routing Error時のログ
Started GET "/sign_in" for 111.239.169.58 at 2021-05-07 16:09:44 +0900
Cannot render console from 111.239.169.58! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by UsersController#sign_in as HTML
User Load (0.3ms) SELECT users.* FROM users WHERE users.id IS NULL LIMIT 1
Redirected to https://f9f754273af44d24aceed3c212cb7a8a.vfs.cloud9.us-east-1.amazonaws.com/sign_in
Filter chain halted as :authorize rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 0.3ms)

Started GET "/sign_in" for 111.239.169.58 at 2021-05-07 16:15:30 +0900
Cannot render console from 111.239.169.58! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255

ActionController::RoutingError (uninitialized constant ApplicationController::UserHelper):

app/controllers/application_controller.rb:3:in <class:ApplicationController>' app/controllers/application_controller.rb:1:in <top (required)>'
app/controllers/users_controller.rb:1:in `<top (required)>'

変更部分のソースコード

Ruby

1class ApplicationController < ActionController::Base 2 protect_from_forgery with: :exception 3 include UsersHelper 4end

###該当部分のソースコード

class UsersController < ApplicationController before_action :authorize, expect: [:sign_up, :sign_up_process, :sign_in, :sign_in_process] # サインイン def sign_in @user = User.new render layout: "application_not_login" end # サインイン処理 def sign_in_process # パスワードをmd5に変換 password_md5 = User.generate_password(user_params[:password]) # メールアドレスとパスワードをもとにデータベースからデータを取得 user = User.find_by(email: user_params[:email], password: password_md5) if user user_sign_in(usre) redirect_to top_path and return else flash[:danger] = "サインインに失敗しました。" redirect_to sign_in_path and return end end

試したこと

リダイレクトループの解決法を調べ
ルーティングの順番の入れ替え、再起動を試しましたが変わりありませんでした。

補足情報(FW/ツールのバージョンなど)

Rails 5.1.7

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

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

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

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

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

asm

2021/05/07 08:08

`UsersHelper`の詳細について提示をおねがいします。
mikamon0213

2021/05/07 08:24

追記のご依頼ありがとうございます。 状況を説明させていただくと、 サインイン処理を追加したく、モジュールを使用しセッションを実装しています。 Usersコントローラを作成した時に自動生成されるUser用ヘルパーモジュールをApplicationコントローラにインクルードし、どのアプリケーションのコントローラでも使えるようにしようとしていました。
asm

2021/05/07 08:31

そのサインイン処理に問題があるようなので authorizeメソッド(フィルター?)のソースコードの提示をお願いしております UsersController#sign_inについても必要かもしれません
mikamon0213

2021/05/07 08:46

ご依頼内容を十分に理解出来ておらず、申し訳ございませんでした。 ソースコードを追記させていただきました。
guest

回答1

0

ベストアンサー

before_action :authorize, expect: [:sign_up, :sign_up_process, :sign_in, :sign_in_process]

expectではなくexceptです。

投稿2021/05/07 08:45

asm

総合スコア15147

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

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

mikamon0213

2021/05/07 08:54

ご指示の通り修正いたしました所、通常画面に戻る事ができました。 何時間も悩んでいたので、本当に助かりました。 誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問