Modelを利用したCRUD(Read編)
までにModelを利用した、CRUDの一つであるCreate(データの作成)を行いました。前項
本項では、CRUDのRであるRead(参照)を実装していきます。
app/controllers/users_controller.rbを開いてください。
今回はindexとshowという2つのActionとそれぞれのViewを作成していきます。
indexは、usersテーブルに登録されたユーザーの一覧を表示 し、
showは、indexページ ( ユーザーの一覧 ) から、ユーザーを選択した際に表示 されるように実装していきます。
それでは、indexというActionに対して、下記の行を追記して下さい。
class UsersController < ApplicationController
# 初期表示
def index
@users = User.all
end
# データを閲覧する画面を表示するためのAction
def show
end
# データを作成する画面を表示するためのAction
def new
@user = User.new
end
# データを更新する画面を表示するためのAction
def edit
end
# データを作成するためのAction
def create
@user = User.new(user_params)
@user.save
redirect_to @user
end
# データを更新するためのAction
def update
end
# データを削除するためのAction
def destroy
end
def user_params
params.require(:user).permit(:name, :gender, :birthday, :hometown, :remarks)
end
end
これは、UserというModelを利用してusersテーブルから全てのユーザー情報を参照し、それらを@usersというインスタンス変数へ代入するという内容になります。なお、@usersは配列 として保持しています。
続いて、Viewを編集していきます。以前、自己紹介ページを作成した際にeachメソッドを利用して「特技」の項目を繰り返し処理で複数行表示しました。今回も同様にeachメソッドを利用して、@usersに対して繰り返し処理を実行し、全ユーザーの情報を表示します。
app/views/users/index.html.erbを開いてください。
下記のようにeachメソッドを利用した処理を実装します。
eachメソッド
<% @users.each do |user| %>
ここに処理を記述する
<% end %>
これは以前も学習しましたが、@users( 配列 )を1件ずつuserという変数に格納しながら繰り返し処理を実行します。
上記コードの「ここに処理を記述する」の箇所で変数userの各項目を参照していきます。
まずは、ユーザー名を表示してみましょう。
<% @users.each do |user| %>
<%= user.name %><br />
<% end %>
ブラウザで確認すると、下の図のようになります。
http://xxxxx.c9users.io:8080/users
※xxxxxの部分は各環境ごとに異なります。
上記URLにて作成したユーザーが全て表示されていれば成功です。
ユーザーを作成したのに表示されないという場合や、エラーの場合は記述ミスの可能性があるので、再度確認してみて下さい。
Try 作成したユーザー情報の表示
本項で全ユーザーの名前を一覧で表示させましたが、名前以外にも下記の項目も一覧に表示させましょう。また、一覧の見た目もCSSを利用して整えて下さい。
・性別
・生年月日
・出身
※一覧に表示させる場合は、tableタグを利用して、表として1ユーザー1レコードで作成して下さい。
未経験でも、現役エンジニアの手厚い指導が受けられるCodeCampのレッスン【無料カウンセリング】とは? 【CodeCampの無料カウンセリング】で知ることができる内容 自分にあったプログラミング言語とは? 初心者のための挫折しない 学習の進め方
独学よりも速く、確実に プログラミングを習得する方法
満足度97.1%、現役エンジニアのマンツーマンレッスンとは?
CodeCampがプログラミング初心者から選ばれる理由
未経験からエンジニア転職・フリーランスとして活躍するステップ
開催時間:毎日9時〜21時迄(所要時間40分) PCとインターネットがあれば、日本全国どこからでも受講できます
CodeCampで学習できる言語・技術