前提・実現したいこと
独学の初学者です。RubyonRailsで個人アプリを作成しております。学習のためRubocopを初導入した所、どうしても自己解決出来ない点が生じてしまいました。
"user"をインクリメンタルサーチ出来るように記述していた所、開発完了後にRubocopから以下のお叱りを受けました。
yml
1#.rubocop_todo.yml 2 3Offense count: 1 4Lint/DuplicateHashKey: 5 Exclude: 6 - 'app/controllers/users_controller.rb'
確かに記述を見ると、以下の5行目のように重複したハッシュキー"id:"が存在していました。
ruby
1#app/controllers/users_controller.rb 2 3 1: class UsersController < ApplicationController 4 2: def index 5 3: return nil if params[:keyword] == "" 6 4: 7 5: @users = User.where(['nickname LIKE?', "%#{params[:keyword]}%"]).where.not(id: current_user.id, id: params[:member]).limit(10) 8 6: respond_to do |format| 9 7: format.html 10 8: format.json 11 9: end 1210: end 1311:end
ハッシュキー"id:"をまとめる記述方法を調べたものの、自己解決に至ることが出來ませんでした。基本的なことで大変恐れ入りますが、御教授いただければ幸いです。
試したこと
ruby
1失敗例1) 〜 .where.not(id: [current_user.id, params[:member]]) 2失敗例2) 〜 .where.not(id: current_user.id, params[:member]) 3失敗例3) 〜 .where.not(id: current_user.id AND params[:member]) 4失敗例4) 〜 .where.not(id: (current_user.id, AND params[:member])) 5失敗例5) 〜 .where.not(id: current_user.id.to_h, AND params[:member]) 6失敗例6) 〜 .where.not(id: {current_user.id.to_h, params[:member]}) 7 ...etc
補足情報(FW/ツールのバージョンなど)
実装状況自体は問題が無く、あくまでRubocopからのお叱りに対応したいという内容なので、関連するJavascriptの記述等は省略させていただきます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/08 01:26
2020/04/08 01:27
2020/04/08 01:32
2020/04/08 01:33
2020/04/08 01:34
2020/04/08 01:35
2020/04/08 01:37
2020/04/08 01:48