Sha256: c7772d2e47bdc971c132d72e17aa2bcde80e6b3501f190154f913ce61e480b1a
Contents?: true
Size: 1.5 KB
Versions: 5
Compression:
Stored size: 1.5 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Rails # This cop enforces the absence of explicit table name assignment. # # `self.table_name=` should only be used for very good reasons, # such as not having control over the database, or working # on a legacy project. # # If you need to change how your model's name is translated to # a table name, you may want to look at Inflections: # https://api.rubyonrails.org/classes/ActiveSupport/Inflector/Inflections.html # # If you wish to add a prefix in front of your model, or wish to change # the default prefix, `self.table_name_prefix` might better suit your needs: # https://api.rubyonrails.org/classes/ActiveRecord/ModelSchema.html#method-c-table_name_prefix-3D # # STI base classes named `Base` are ignored by this cop. # For more information: https://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html # # @example # # bad # self.table_name = 'some_table_name' # self.table_name = :some_other_name class TableNameAssignment < Base include ActiveRecordHelper MSG = 'Do not use `self.table_name =`.' def_node_matcher :base_class?, <<~PATTERN (class (const ... :Base) ...) PATTERN def on_class(class_node) return if base_class?(class_node) find_set_table_name(class_node).each { |node| add_offense(node) } end end end end end
Version data entries
5 entries across 5 versions & 2 rubygems