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

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

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

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

Q&A

解決済

1回答

1550閲覧

Ruby on rails 変数に値が入らない

chocolate_pie

総合スコア26

Ruby on Rails

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

0グッド

0クリップ

投稿2020/03/19 03:09

編集2020/03/19 03:14

前提・実現したいこと

コントローラーで情報を取得する際にエラーが起きました。
変数の中に入れる値は取れているのに変数に値が入ってくれません。
なぜでしょうか…?

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

エラーメッセージ 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]

初心者で至らない点があると思いますがよろしくお願いします。

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

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

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

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

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

guest

回答1

0

自己解決

Ruby

1superior_id = params[:user_id].to_i 2  user_superiors = Superior.where(superior_id: superior_id) 3 ids = user_superiors.pluck(:user_id)

のuser_superiorsの前に全角スペースが入っていたためエラーが出ているだけでした。
全角スペース消したら無事処理されました。

投稿2020/03/19 03:30

chocolate_pie

総合スコア26

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問