CRUD を作成⑥
CRUD を作成⑤ の続き。
前回は詳細ページの表示に成功したが、表示されるデータが常に同じという問題があった。
app/controllers/books_controller.rb のコードは現在以下のようになっている。
def show
@book = Book.find(1)
end
現状のコードは find の引数に 1 と指定されている。この値が常に固定されているため、表示されるデータが常に同じという問題が発生している。
これを以下のように修正する。
def show
@book = Book.find(params[:id])
end
テストを実行する。
bundle e rspec spec/requests/books_spec.rb
グリーンになる。しかし、テストを修正しておく。
describe "GET /books/:id" do
let(:book) { create(:book) }
it "returns http success" do
get "/books/#{book.id}"
expect(response).to have_http_status(:success)
end
end
テストを実行する。グリーンになる。
問題なさそうなので、一覧ページから遷移できるか確認する。
それぞれのリンクに遷移して、それぞれのデータが表示されることを確認する。
app/views/books/show.html.erb に以下のコードを追加する。
id: <%= @book.id %><br />
タイトル: <%= @book.title %>
表示を確認する。
詳細ページから一覧ページへ戻ることができるようリンクを追加する。
以下のコードを追加する。
<br />
<%= link_to '一覧', books_path %>
表示を確認する。
一覧のリンクを押して一覧ページに遷移できることが確認できたら成功。
次に続く。
この記事が気に入ったらサポートをしてみませんか?