TechAcademy Webアプリケーションコース(24日目)

・ページネーション
レコードの取得の範囲を決めて、その範囲内のもののみを表示するための機能。
messages#index で実現させる。

kaminari というページネーション用の Gem があるのでインストール
gem 'kaminari'(Gemfile の最後に追加)
$ bundle install

Controller
app/controllers/messages_controller.rb ファイル
Controller 側では Message.all に対して .page(params[:page]) を付けるだけ

View
app/views/messages/index.html.erb ファイル
View 側では、ページネーションを表示したいところに <%= paginate @messages %> を追加するだけ

1ページに表示するレコード数の変更
Controller 側で .page(params[:page]) の後に .per(number) を付けるだけ
per を記述しないデフォルト状態では1ページ25件

順番の変更
Message 一覧表示の順番を変更したい場合には、 Controller 側で order を記述
def index
@messages = Message.order(id: :desc).page(params[:page]).per(3)
end

Git
$ git status 現在のワークツリーとインデックスの状況を確認

$ git diff 前回のコミットと今回変更したファイルの差分を抽出

$ git add . ステージ:ワークツリー→インデックス

$ git commit -m 'add pagination' コミット:インデックス→ローカルリポジトリ

$ git log コミット履歴を確認する

・テストデータの生成
一気にテストデータを生成したいときRuby プログラムで自動生成する方法

seed  テストデータを自動生成するためのプログラム
db/seeds.rb ファイルに書き込む
$ rails db:seed 何度も実行すると何度も生成される。

db:reset
db/seeds.rb で記述したデータのみを生成して、その他のデータを削除してしまいたい場合に使用する。
rails db:reset は
①rails db:drop データベースを削除
➁rails db:create データベースを作成
③rails db:schema:load データベースを構築
④rails db:seed db/seeds.rb を実行
を行うコマンド。

久々の朝勉強でカリキュラムを進めていった。
仕事終わりにまた進めていきたい。

・Bootstrapでデザインする
メッセージボードの見栄えを良いものにする。

app/views/layouts/application.html.erb ファイルに
Bootstrap のWebページの CDN にあるコードを貼り付ける。

共通部
ナビバーは layouts フォルダの中にパーシャルとして作成
「新規メッセージの投稿」リンクはナビバー内の右側に表示させる。
とても変更点が多く、一度見たことあるコードが多くテキストでコードがどの様に動いているの説明が全くなく、一周目はコードを書いて・二周目はコードを検索しつつ嚙み砕いて理解していきたいと思った。

view のページに関わるファイルの編集
index ・ show ・ new ・ edit

やっとメッセージボードのLesson13を一通りやりきれました。
もう少し理解してから次へ進めていきたい。

この記事が気に入ったらサポートをしてみませんか?