Class: RuboCop::Cop::Rails::OrderById
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Rails::OrderById
- Includes:
- RangeHelp
- Defined in:
- lib/rubocop/cop/rails/order_by_id.rb
Overview
Checks for places where ordering by `id` column is used.
Don't use the `id` column for ordering. The sequence of ids is not guaranteed to be in any particular order, despite often (incidentally) being chronological. Use a timestamp column to order chronologically. As a bonus the intent is clearer.
NOTE: Make sure the changed order column does not introduce performance bottlenecks and appropriate database indexes are added.
Constant Summary collapse
- MSG =
'Do not use the `id` column for ordering. '\ 'Use a timestamp column to order chronologically.'
- RESTRICT_ON_SEND =
%i[order].freeze
Instance Method Summary collapse
Instance Method Details
#on_send(node) ⇒ Object
40 41 42 |
# File 'lib/rubocop/cop/rails/order_by_id.rb', line 40 def on_send(node) add_offense(offense_range(node)) if order_by_id?(node) end |