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 1 year has passed since last update.

【解決方法】uninitialized constant TimelinesController Object.const _get(camel_cased_word)とは?

Posted at

Ruby on rails を学習中の方の参考にしてもらえたら嬉しいです。
アプリケーションを作成している時に出てくるエラーとその解決方法について掲載します。少しでも参考にしていただけると幸いです。

今回のエラーはこちらです▼
uninitialized constant TimelinesController
Object.const _get(camel_cased_word)

というエラーの解決方法をお話しします。

スクリーンショット 2023-06-02 16.06.18.png
上記のエラーを解決していきます。

先に結論を話します

この手のエラーはコントローラーが無いか、読み込まれていないために起こるエラーです。controllerを作成してルーティングを作成していくとエラーが直ります。
では直していきましょう。

エラーまでの過程を説明

今回は下の画像のようにフォロータイムラインというタブを押すと表示されるタイムラインが切り替わる仕様にしています。このタイムラインはログインしていないと見れないような仕様にしており、表示させる場合はログインを促す画面に遷移させます。
今回はとりあえず、コントローラーを作っていきましょう。
スクリーンショット 2023-06-02 16.23.25.png

エラーの見つけ方

▼まずはエラーを解読していきます。
スクリーンショット 2023-06-02 16.06.28.png
例によってChatGPTで解説してもらいます。

そして、ターミナルにcontroller作成のための雛形のコマンドもChatGPTに出してもらいました。
ターミナルで以下を実行します。

ターミナル
rails generate controller Timelines index show new edit create update destroy

というコマンドを打ちます。正確にはshowメソッドしか使わないので後で消しました。
スクリーンショット 2023-06-02 16.11.05.png
controllerの作成が成功するとこんなターミナルの画面が出てきます。これでオッケー。

新たなエラーが続けて発生!!スウィープします!

controllerを作成してルーティングを定義してあげて、ブラウザを読み込むとさらにエラーが出てきました。こちらも一緒にsweep(掃除)しましょう!!
エラー画面のスクショを忘れたのでChatGPTに入力された文字で解説します。
▼以下の画像のエラーが出現
スクリーンショット 2023-06-02 16.14.19.png
118n::Invalid Locale at /unauthenticated ja is not a valid localeこのようなエラーが出ましたので合わせて解決していきます。

▼注目は以下のラインです
スクリーンショット 2023-06-02 16.21.53.png

1,ロケールファイルの存在:まず、日本語のロケールファイル(通常は
config/locales/Ja.yml)が存在し、適切な形式で書かれていることを確認してください。

このように書いてあったのでymlファイルを直します。
修正箇所は下の画像の通りのファイルです。
スクリーンショット 2023-06-02 16.22.30.png
ローケルズの下層のファイルには日本語表記にするための指示書みたいなものが書いてあります。スクリーンショット 2023-06-02 17.04.22.png
おそらく! devise.ja.ymlというファイルを追加すれば118n::Invalid Locale at /unauthenticated ja is not a valid localeというエラーは直ると思います。

そしてブラウザを再読み込みすると元のページに戻ってきてきます。
スクリーンショット 2023-06-02 16.23.25.png
そして、フォロータイムラインをクリックすると
スクリーンショット 2023-06-02 16.22.47.png
ログインを求めるページに遷移します。
ログインをさせるためのページ遷移が起こる理由は今回のエラー解決とは関係ないところのコードが動作しているためです。
エラーを解決すればコントローラーが正しく動いてhtmlを正しく描画してくれます。

最後に

ということで、今回はcontrollerの作成に関わるエラーを解決しました。
コマンドを正確に打つ自信がない時には雛形をChatGPTに出してもらうと楽で良いですよ。

いかがでしたでしょうか?
他にも記事を発信していきますので、私の QiitaやTwitterをフォローしていただけると嬉しいです。
個別の質問もぜひ歓迎します。
私自身、初学者ではありますが、1歩先を行くものとして回答できたらと思います。
それでは。

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?