0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

エラー:Routing Error_Uninitialized constant HomesControllerにつまづいた話

Last updated at Posted at 2021-09-13

Ruby on Rails ver.5.2.5にて通販サイトの作成をするにあたり、namespaceとscope moduleの使い分けができておらず発生したエラー。
初心者ゆえの初歩的なミスですが、備忘録として記しておきます。

■エラー内容
devise にて管理者側と顧客側を定義し、namespaceによりcontrollerをそれぞれ[controllers/admin]と[controllers/public]に棲み分けて作成しました。
そしてrutes.erbを以下のように記載

スクリーンショット 2021-09-13 20.34.15.png

各controllerにアクション名を定義し、いざサーバー起こしてページ確認しようと思ったら、、

Routing Error
Uninitialized Constant HomeController

というエラーが発生。

エラーの内容は、namespaceにて定義されているadmin側のルーティングは辿れるけど、それより前のルーティングは一体どこの階層のコントローラを呼んでんの?分からないよ?というエラーでした。

■解決方法
scope moduleでpublic側も設定してあげないといけなかったようです。
スクリーンショット 2021-09-13 20.50.05.png

ここで使用した
scope module: 'public' do 〜 end
ですが、namespaceとは異なり、URLに/publicを追加せず、controller#actionにだけpublic/を追加することができるようです。

public側はURLに/publicを表示しないという仕様のため、namespaceで指定しなければいいのか〜と思っていたのですが、コントローラアクションはちゃんとpublicフォルダ内のコントローラを使うよ!と設定してあげないといけなかったんですね。
勉強になりました...。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?