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
39 40 41 |
# File 'lib/rubocop/cop/rails/order_by_id.rb', line 39 def on_send(node) add_offense(offense_range(node)) if order_by_id?(node) end |