instance method references

Ruby on Rails 4.2.9

Since v2.2.3

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

references(*args)

Adds a reference.

t.references(:user)
t.belongs_to(:supplier, foreign_key: true)

See SchemaStatements#add_reference for details of the options you can use.

Parameters

args rest
Source
# File activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb, line 312
      def references(*args)
        options = args.extract_options!
        polymorphic = options.delete(:polymorphic)
        index_options = options.delete(:index)
        foreign_key_options = options.delete(:foreign_key)
        type = options.delete(:type) || :integer

        if polymorphic && foreign_key_options
          raise ArgumentError, "Cannot add a foreign key on a polymorphic relation"
        end

        args.each do |col|
          column("#{col}_id", type, options)
          column("#{col}_type", :string, polymorphic.is_a?(Hash) ? polymorphic : options) if polymorphic
          index(polymorphic ? %w(type id).map { |t| "#{col}_#{t}" } : "#{col}_id", index_options.is_a?(Hash) ? index_options : {}) if index_options
          if foreign_key_options
            to_table = Base.pluralize_table_names ? col.to_s.pluralize : col.to_s
            foreign_key(to_table, foreign_key_options.is_a?(Hash) ? foreign_key_options : {})
          end
        end
      end

Defined in activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb line 312 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::ConnectionAdapters::TableDefinition

Type at least 2 characters to search.

↑↓ navigate · open · esc close