見出し画像

CRUD を作成④

CRUD を作成③ の続き。
前回はモデルとテーブルを追加したので、今回はビューにデータを表示できるようにしていく。
一覧ページから作成していくが、まだブラウザからデータを作成できるようにしていないため、表示するデータを作成するため seed.rb にデータを作るコードを追加する。
※ 作成する件数は適宜調整

book_attributes = (1..100).map { |n| { title: "本#{n}" } }
book_attributes.each { |book_attribute| Book.find_or_create_by(title: book_attribute[:title]) }

以下のコマンドを実行する。

bundle e rails db:seed

データができていることを確認する。以下のコマンドを実行する。

bundle e rails c

指定した件数分のデータが作成されていれば成功。

irb(main):001:0> Book.count
  Book Count (1.7ms)  SELECT COUNT(*) FROM "books"
=> 100

データの準備が整ったので、コントローラのindexアクションを修正する。
app/controllers/books_controller.rb を修正する。

def index
  @books = Book.all
end

アクションの修正が完了したのでテストを実行する。
テストがグリーンならば、修正によるバグの影響はないこととなる。

bundle e rspec spec/requests/books_spec.rb

グリーンになったので成功。

.......

Finished in 0.88373 seconds (files took 4.61 seconds to load)
7 examples, 0 failures

次はビューを作成していく。
app/views/books/index.html.erb に以下のコードを追加する。

<% @books.each do |book| %>
  <%= book.title %><br />
<% end %>

一覧ページにアクセスして確認する。登録した件数分データが表示されていれば成功。


に続く。


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