質問: Product.limit(20).order('id DESC') end def shows @product= Product.find(params[:id])←ここの部分 @title= Product.find(params[:title]) end def search # 検索フォームのキーワードをあいまい検索して、productsテーブルから20件の作品情報を取得する @products=Product.find_by_title(params[:title]) @products=Product.order('id DESC').limit(20) end end ``` と記載しました。 作品情報ごとにidがふられていて、自分ではどこが間違っているのかわかりません。 findメソットを使ったのが間違っているところなのでしょうか?
回答: def shows になっていますが誤植でしょうか? Routing Error No route matches ですのでroutingのエラーです。 products#showであれば、/products/280(:id)/にアクセスしたさい呼び出されるはずですが、 上記では/products/280/reviews/new(商品id280のレビューを新規作成する画面?)にアクセスしてしまっています。 そのため、そのroutingは設定されていないよ、というエラーですね。 とりあえずurlを/products/idの形で直打ちして表示されるか試してみるのがいいかと思います。