質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

579閲覧

(Rails)DBからレコードを取得しrailsのviewで表示させたいです。

hello-wor

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/11/13 16:44

編集2021/11/13 17:38

前提・実現したいこと

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テーブルにはサンプルデータをいくつか入れてあります。
質問の仕方も含め新米ですがご教授いただけたらと思います。
よろしくお願いいたします。

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

winterboum

2021/11/14 03:58

表示は RecordsController の index で、ですか? でしたら records/index.html.erg のcodeを載せてください。 データはできていることは確認しましたか? rails c して Record.all としてみてください
hello-wor

2021/11/14 04:40

お忙しい中ご回答いただきありがとうございます。 >>表示は RecordsController の index で、ですか?でしたら records/index.html.erg のcodeを載せてください。 勉強不足でここが理解できていません。 records/edit.html.erb にデータを表示させたいと考えてます。 >>rails c して Record.all こちらはテストデータが何件か確認できました。 よろしくお願いいたします。
winterboum

2021/11/14 04:57

ん? editに? editって編集だから、通常は 表示 には使いません。 表示だと show を使いますが、それにしても 複数あるなかで どれを? ってのが必要 普通は indexで一覧を出し、そこで選んで show とか edit とかに行きます。 まずは index作るのが王道かと
hello-wor

2021/11/14 05:06

回答ありがとうございます。 なるほど、それは知りませんでした。 showも存在しておりとりあえず中身が取れてるか確認したいので、 <%= @record %>と記載しても何も表示されませんでした。 そうしましたら、recordのコントローラーでindexメソッドを作りfindやwhereで情報を絞って取ってきて、それをshowで表示させるということでお間違いないでしょうか? お手数おかけしてしまい申し訳ございません。
guest

回答1

0

ベストアンサー

とりあえず show をみたいなら(show のviewがあるなら)
http::localhost:3000/recodes/1
してみてください。
1 は Record.all で出てきたデータの id の値を。

投稿2021/11/14 06:52

winterboum

総合スコア23416

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問