質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1593閲覧

furima アプリの商品詳細機能を実装しております、詳細ページに遷移したい

tubuyakisyun

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/10/03 13:28

前提・実現したいこと

furima アプリの商品詳細機能を実装しております、詳細ページに遷移したいが、商品画像をクリックしたら

発生している問題・エラーメッセージ

Couldn't find Item with 'id'=#<Item::ActiveRecord_Relation:0x00007fd70f1f0200>

該当のソースコード

ruby

1class ItemsController < ApplicationController 2 before_action :authenticate_user!, except: [:index,:show] 3 4 def index 5 @items = Item.order('created_at DESC') 6 end 7 8 def new 9 @item = Item.new 10 end 11 12 def show 13 @item = Item.find(params[:id]) 14 end 15 16 def create 17 @item = Item.new(item_params) 18 if @item.save 19 redirect_to root_path 20 else 21 render :new 22 end 23 end 24 25 private 26 27 def item_params 28 params.require(:item).permit(:image, :name, :info, :price, :category_id, :prefecture_id, :status_id, :scheduled_id, 29 :shipping_id).merge(user_id: current_user.id) 30 end 31end 32

試したこと

ルーティングを確認し

ruby

1Rails.application.routes.draw do 2 devise_for :users 3 4 resources :items, only: [:new,:create,:index,:show] 5 root to: 'items#index' 6end

問題なさそう、、、
ターミナル上

ruby

1 POST /users(.:format) devise/registrations#create 2 items GET /items(.:format) items#index 3 POST /items(.:format) items#create 4 new_item GET /items/new(.:format) items#new 5 item GET /items/:id(.:format) items#show 6 root GET / items#index 7

問題なさそう、、、

ruby

1 def show 2 binding.pry 3 @item = Item.find(params[:id]) 4 end

詳細ページへ遷移時のターミナル上

ruby

1ActiveRecord::RecordNotFound (Couldn't find Item with 'id'=#<Item::ActiveRecord_Relation:0x00007fd70f1f0200>): 2 3app/controllers/items_controller.rb:13:in `show' 4Started GET "/items/%23%3CItem::ActiveRecord_Relation:0x00007fd70f1f0200%3E" for ::1 at 2021-10-03 21:25:59 +0900 5Processing by ItemsController#show as HTML 6 Parameters: {"id"=>"#<Item::ActiveRecord_Relation:0x00007fd70f1f0200>"} 7 8From: /Users/user/projects/furima-35933/app/controllers/items_controller.rb:13 ItemsController#show: 9 10 12: def show 11 => 13: binding.pry 12 14: @item = Item.find(params[:id]) 13 15: end 14 15[1] pry(#<ItemsController>)> params 16=> <ActionController::Parameters {"controller"=>"items", "action"=>"show", "id"=>"#<Item::ActiveRecord_Relation:0x00007fd70f1f0200>"} permitted: false> 17[2] pry(#<ItemsController>)> @item 18=> nil 19[3] pry(#<ItemsController>)> Item.find(params[:id]) 20 Item Load (0.7ms) SELECT `items`.* FROM `items` WHERE `items`.`id` = NULL LIMIT 1 21(pry):3:in `show' 22ActiveRecord::RecordNotFound: Couldn't find Item with 'id'=#<Item::ActiveRecord_Relation:0x00007fd70f1f0200> 23from /Users/user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.4.1/lib/active_record/core.rb:177:in `find' 24[4] pry(#<ItemsController>)> params[:id] 25=> "#<Item::ActiveRecord_Relation:0x00007fd70f1f0200>"

prams内idはおかしそうですが、、、

SequelPro上
データ(ID)はありますが、、、調べてみましたが、該当する解決は見つかりませんでした、、、

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

winterboum

2021/10/03 13:57

show を呼び出す view を載せてください
tubuyakisyun

2021/10/03 14:06

すみません、ご確認ありがとうございます、自己解決に載せておりましたが、ちゃんと表示できたが、まだまだ理解不十分のところがあると思いますが、ご指摘あれば助かります。
guest

回答1

0

自己解決

html

1#ビューファイル 2index.html.erb 3<% @items.each do |item| %> 4 <li class='list'> 5 <%= link_to item_path(@items) do %>

なんか悪さをするのはviewファイルの**@itemsでした
@itemsだとリクエストは複数のitemになってしまうのはに対し、パラメーター上の
@itemは一つ取得したいが誰を選ぶかはわからなくなってしまうため、だから=> nil**と表示になってしまいました

@myxoさんの質問に感謝します。全く同じ問題でした

リンク

投稿2021/10/03 14:01

編集2021/10/03 14:15
tubuyakisyun

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問