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 %>
一覧ページにアクセスして確認する。登録した件数分データが表示されていれば成功。
次に続く。
この記事が気に入ったらサポートをしてみませんか?