前提・実現したいこと
rails,rubyともに初心者でありteratailでの質問も初めてです。
ご教授いただけたらと思います。
railsでMysqlのDBからレコードを取得しviewで表示させたいです。
とりあえず、テーブルの中身全て表示をさせたいと考えております。
Rails 6.1.4.1
mysql Ver 14.14
recordsテーブルからレコードを取得してviewに表示させようとしていますが何も表示されず取得できていないようです。エラーは出ていません。
発生している問題・エラーメッセージ
エラーは表示されておりませんが中身が何も表示されません。
該当のソースコード
records_controller.erb
ruby
1class RecordsController < ApplicationController 2 before_action :set_user, only: [:show, :edit, :update] 3 before_action :authenticate_user!, only: [:mypage, :edit, :update,] 4 5 6 def new 7 @record = Record.new 8 end 9 10 def create 11 @record = Record.new(record_params) 12 if @record.save 13 #puts 'Success' 14 redirect_to user_path(current_user) and return 15 else 16 render 'new' 17 puts 'New' and return 18 end 19 end 20 21 def index 22 @records = Record.all 23 end 24 25 def edit 26 @User = User.find(params[:id]) 27 unless @user == current_user 28 redirect_to user_path(@user) 29 end 30 end 31 32 def mypage 33 redirect_to user_path(current_user) 34 end 35 36 def update 37 if current_user.update(user_params) 38 redirect_to user_path(current_user) 39 else 40 redirect_to edit_user_path(current_user) 41 end 42 end 43 private 44 def record_params 45 params.permit(:date, :kind, :name, :rank) 46 end 47 private 48 49 def set_user 50 @user = User.find(params[:id]) 51 end 52 53end
edit.html.erb
ruby
1<%= @record %> 2<% end %> 3
record.rb
ruby
1class Record < ApplicationRecord 2 @record = Record.all 3end
試したこと
@record や @recordsなど試したが何も表示さません。
かなりの初心者ですがご教授いただけたらと思います。どうぞよろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Mysqlのrecordsテーブルにはサンプルデータをいくつか入れてあります。
質問の仕方も含め新米ですがご教授いただけたらと思います。
よろしくお願いいたします。
ここにより詳細な情報を記載してください。
表示は RecordsController の index で、ですか?
でしたら records/index.html.erg のcodeを載せてください。
データはできていることは確認しましたか?
rails c
して
Record.all
としてみてください
お忙しい中ご回答いただきありがとうございます。
>>表示は RecordsController の index で、ですか?でしたら records/index.html.erg のcodeを載せてください。
勉強不足でここが理解できていません。
records/edit.html.erb
にデータを表示させたいと考えてます。
>>rails c
して
Record.all
こちらはテストデータが何件か確認できました。
よろしくお願いいたします。
ん?
editに? editって編集だから、通常は 表示 には使いません。
表示だと show を使いますが、それにしても 複数あるなかで どれを? ってのが必要
普通は indexで一覧を出し、そこで選んで show とか edit とかに行きます。
まずは index作るのが王道かと
回答ありがとうございます。
なるほど、それは知りませんでした。
showも存在しておりとりあえず中身が取れてるか確認したいので、
<%= @record %>と記載しても何も表示されませんでした。
そうしましたら、recordのコントローラーでindexメソッドを作りfindやwhereで情報を絞って取ってきて、それをshowで表示させるということでお間違いないでしょうか?
お手数おかけしてしまい申し訳ございません。
回答1件
あなたの回答
tips
プレビュー