andrewmarkle
Joined
10 Experience
0 Lessons Completed
0 Questions Solved
Activity
Posted in Organizing Rails Model Files Discussion
You can configure Rubocop to enforce an order on your models if you wish using the Layout/ClassStructure rule. https://docs.rubocop.org/rubocop/1.69/cops_layout.html#layoutclassstructure
You can play around with this but something like this:
Layout/ClassStructure:
Enabled: true
AutoCorrect: false
Categories:
module_inclusion:
- include
- prepend
- extend
attributes:
- attribute
- attr_reader
- attr_writer
- attr_accessor
- alias_attribute
- delegate
- enum
associations:
- belongs_to
- has_one
- has_many
- has_and_belongs_to_many
validations:
- validates
- validate
- validates_with
callbacks:
- before_validation
- before_save
- before_create
- before_destroy
- after_initialize
- after_create
- after_save
- after_destroy
- after_commit
- after_create_commit
- after_update_commit
- after_destroy_commit
- around_create
other_macros:
- acts_as_paranoid
- audited
- devise
- has_paper_trail
- serialize
scopes:
- default_scope
- scope
controller_actions:
- before_action
- skip_before_action
controller_rescue:
- rescue_from
ExpectedOrder:
- module_inclusion
- constants
- attributes
- enums
- associations
- validations
- callbacks
- other_macros
- scopes
- controller_macros
- controller_actions
- controller_action_caching
- controller_rescue
- class_methods
- initializer
- public_methods
- protected_methods
- private_methods