ヘッダーから一覧ページに遷移するときにuninitialized constant UsersControllerというエラー

初めに

  • Progateで躓いたところのアウトプットを行うことにより学習効率を向上させる狙いと、備忘録がてらに書いていきます。

エラー内容

  • ヘッダーの登録者一覧からから一覧ページ遷移する際にエラーが生じた

  • Railsで定数やclassが定義されていないエラー

コード内容

routes.erb
Rails.application.routes.draw do
  # newアクションへのルーティングを追加してください
  get "users/new" => "users#new"
  
  get "users/index" => "users#index"
  get "users/:id" => "users#show"

  get "posts/index" => "posts#index"
  get "posts/new" => "posts#new"
  get "posts/:id" => "posts#show"
  post "posts/create" => "posts#create"
  get "posts/:id/edit" => "posts#edit"
  post "posts/:id/update" => "posts#update"
  post "posts/:id/destroy" => "posts#destroy"
  
  get "/" => "home#top"
  get "about" => "home#about"
end 
users_controller
class UsersController < ApplicationController
  def index
    @users = User.all
  end
  
  def show
    @user = User.find_by(id: params[:id])
  end
  
end
posts/index.html.erb
<div class="main users-index">
  <div class="container">
    <h1 class="users-heading">ユーザー一覧</h1>
    <% @users.each do |user| %>
      <div class="users-index-item">
        <div class="user-right">
          <%= link_to(user.name, "/users/#{user.id}") %>
        </div>
      </div>
    <% end %>
  </div>
</div>
posts/application.html.erb
<!DOCTYPE html>
<html>
  <head>
    <title>TweetApp</title>
    <%= csrf_meta_tags %>

    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <header>
      <div class="header-logo">
        <%= link_to("TweetApp", "/") %>
      </div>
      <ul class="header-menus">
        <li>
          <%= link_to("TweetAppとは", "/about") %>
        </li>
        <li>
          <%= link_to("投稿一覧", "/posts/index") %>
        </li>
        <li>
          <%= link_to("新規投稿", "/posts/new") %>
        </li>
        <li>
          <%= link_to("ユーザー一覧", "/users/index") %>
        </li>
        <!-- 新規登録ページへのリンクを作成してください -->
        <li>
          <%= link_to("新規登録","/users/new")%>
        </li>
        
      </ul>
    </header>

    <% if flash[:notice] %>
      <div class="flash">
        <%= flash[:notice] %>
      </div>
    <% end %>
    
    <%= yield %>
  </body>
</html>

考えたこと

*ヘッダーから一覧は遷移ができている

  • エラーの内容から@users = users.allに問題がある

  • name errorから@users = users.allに間違いがる可能性がある

  • 検索結果からusers.rbがない場合やコントローラの名前ミスの可能性もある

結果

*@users = Users.all をUser.allに直すことで解決