

現在railsにてkaminariを使用してpagenation機能を作るのにcontrollerに以下のエラーが発生して調べてもわからないので質問しました。

[code]

    NameError in PageController#index
    uninitialized constant PageController::Page
    Extracted source (around line #4):
    
[/code]

[code]

    def index
        @page = Page.all
        respond_to do |format|
            format.html
        end
    
[/code]

エラーと言われているのは@page =
Page.allの部分ですがこのエラーは単に文字の間違いなのでしょうか?それともviews/page/index内の記述に間違いがあるのでしょうか？

発生の流れとしては

  1. rails g controller page index
  2. page controller.rbを上記に書き換える。
  3. views/page/index.html.erbを作成
  4. rails sにて3000/page/indexをするとエラー

ちなみに3のindex内は下記

[code]

    <div class="page-header">
      <h1>単語一覧</h1>
    </div>
    <div class="list-group">
      <% @pages.each do |page| %>
        <%= link_to(word, class: 'list-group-item') do %>
          <h4 class="list-group-item-heading">
            <%= word.word %>
          </h4>
          <p class="list-group-item-text">
            <%= page.reading %>
          </p>
        <% end %>
      <% end %>
      <%= paginate @pages %>
    </div>
    
[/code]

どなたかエラー発生原因のご教授よろしくお願い致します。


CC BY-SA 4.0
2021-05-21T06:05:33.360
75994
2021-05-23T09:02:30.853
2021-05-21T07:10:25.703
3060
44830
question
ruby-on-rails
railsのname errorの原因について


view側では <% @pages.each do |page| %>
となっているので、Controller側の変数名を@pagesに変えたら動くと思います。

[code]

    def index
    -   @page = Page.all
    +   @pages = Page.all
        respond_to do |format|
            format.html
        end
    
[/code]


CC BY-SA 4.0
2021-05-23T09:02:30.853
76022
2021-05-23T09:02:30.853
45465
75994
answer