前提・実現したいこと
コントローラーで情報を取得する際にエラーが起きました。
変数の中に入れる値は取れているのに変数に値が入ってくれません。
なぜでしょうか…?
発生している問題・エラーメッセージ
エラーメッセージ undefined local variable or method `user_superiors' for #<SuperiorsController:0x000055c8734e68d0> ids = user_superiors.pluck(:user_id)←赤線が引いてあるコード
該当のソースコード
Ruby
1def subordinate_index 2 superior_id = params[:user_id].to_i 3 user_superiors = Superior.where(superior_id: superior_id) 4 ids = user_superiors.pluck(:user_id) 5 @users = User.find(ids) 6 end
デバック結果
From: /vagrant/myapp/app/controllers/superiors_controller.rb @ line 16 SuperiorsController#subordinate_index: 12: def subordinate_index 13: superior_id = params[:user_id].to_i 14: user_superiors = Superior.where(superior_id: superior_id) 15: binding.pry => 16: ids = user_superiors.pluck(:user_id) 17: @users = User.find(ids) 18: end [1] pry(#<SuperiorsController>)> superior_id => 2 [2] pry(#<SuperiorsController>)> Superior.where(superior_id: superior_id) Superior Load (1.9ms) SELECT "superiors".* FROM "superiors" WHERE "superiors"."superior_id" = ? [["superior_id", 2]] ? app/controllers/superiors_controller.rb:16 => [#<Superior:0x00005557be2acba8 id: 1, user_id: 2, team_id: 1, superior_id: 2, created_at: Wed, 18 Mar 2020 17:48:09 JST +09:00, updated_at: Wed, 18 Mar 2020 17:48:09 JST +09:00>, #<Superior:0x00005557be2aca40 id: 2, user_id: 3, team_id: 1, superior_id: 2, created_at: Wed, 18 Mar 2020 17:48:38 JST +09:00, updated_at: Wed, 18 Mar 2020 17:48:38 JST +09:00>] [3] pry(#<SuperiorsController>)> user_superiors NameError: undefined local variable or method `user_superiors' for #<SuperiorsController:0x00005557bc5a5a00> from (pry):3:in `subordinate_index' [4] pry(#<SuperiorsController>)>
試したこと
デバックしました。
補足情報(FW/ツールのバージョンなど)
Rails 5.2.3
ruby 2.5.7p206 (2019-10-01 revision 67816) [x86_64-linux-gnu]
初心者で至らない点があると思いますがよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。