Class: RuboCop::Cop::Gusto::PluckOnSelect
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Gusto::PluckOnSelect
- Defined in:
- lib/rubocop/cop/gusto/pluck_on_select.rb
Overview
Do not use .pluck on .select.
.select returns an ActiveRecord relation with only the selected columns marked for
retrieval. .pluck returns an array of column values. When chained, .pluck is unaware
of any directive passed to .select (e.g. column aliases or a DISTINCT clause), which
can cause unexpected behavior.
Constant Summary collapse
- RESTRICT_ON_SEND =
%i(pluck).freeze
- MSG =
"Do not use `.pluck` on `.select`."
Instance Method Summary collapse
- #on_send(node) ⇒ Object (also: #on_csend)
Instance Method Details
#on_send(node) ⇒ Object Also known as: on_csend
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/rubocop/cop/gusto/pluck_on_select.rb', line 41 def on_send(node) return unless node.receiver receiver_node = node.receiver while receiver_node if receiver_node.call_type? && receiver_node.method?(:select) add_offense(node) break end receiver_node = receiver_node.receiver end end |