前提・実現したいこと
ruby on rails学習中の初心者です。データベースの一覧を表示したいのですがブラウザに表示できません。インスタンス変数にクエリーメソッドorderを使ってリレーションオブジェクトを取り出す処理を記述しています。どうやらインスタンス変数が存在しないことになっているようです。一人では限界を感じ質問しました。有識者の方よろしくお願いします。
該当のソースコード
config/routes.rb
ruby
1Rails.application.routes.draw do 2 root "top#index" 3 4 resources :members #コントローラーmembersをルーティング 5end 6
app/controllers/members_controller.rb
ruby
1class MembersController < ApplicationController 2 def index 3 @memebers = Member.order("number") #今回の問題個所。viewに表示できません。@membersが存在しないみたいです。データベースの値が入ってないのでしょうか? 4 logger.debug @members 5 end 6 7 def show 8 end 9 10 def new 11 end 12 13 def edit 14 end 15 16 def create 17 end 18 19 def update 20 end 21 22 def destroy 23 end 24end 25
app/views/members/index.html.erb
ruby
1<% @page_title = "会員名簿" %> 2<h1><%= @page_title %></h1> 3 4<% if @members.present? %> #ここの処理で@membersが存在しないらしく、会員一覧が表示できません。 5 <table class="list"> 6 <thead> 7 <tr> 8 <th>背番号</th> 9 <th>ユーザー名</th> 10 <th>氏名</th> 11 </tr> 12 </thead> 13 <tbody> 14 <% @members.each do |member| %> 15 <tr> 16 <td style="text-align: right"><%= member.number %></td> 17 <td><%= member.name %></td> 18 <td><%= member.full_name %></td> 19 </tr> 20 <% end %> 21 </tbody> 22 </table> 23<% else %> 24 <p>会員情報がありません。</p> 25<% end %>
データベースはseeds.rbを使って作りました。
db/seeds.rb
ruby
1names = %w(Taro Jiro Hana John Mike Sophy Bill Alex Mary Tom) 2fnames = ["佐藤", "鈴木", "高橋", "田中"] 3gnames = ["太郎", "次郎", "花子"] 40.upto(9) do |idx| 5 Member.create( 6 number: idx + 10, 7 name: names[idx], 8 full_name: "#{fnames[idx % 4]} #{gnames[idx % 3]}", 9 email: "#{names[idx]}@example.com", 10 birthday: "1981-12-01", 11 sex: [1, 1, 2][idx % 3], 12 administrator: (idx == 0) 13 ) 14end 15
試したこと
members_controller.rbのindexアクションにlogger.debugを試したのですが中身は何も表示されませんでした。
補足情報(FW/ツールのバージョンなど)
rails version 6.1.4.1
ruby version 3.0.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/11 19:41
2021/12/12 09:42