跳至内容 跳至搜索
命名空间
方法
I
P
S
T

类公共方法

immutable_strings_by_default=(bool)

确定列是否应将其类型推断为 :string:immutable_string。此设置不影响 attribute :foo, :string 的行为。默认为 false。

# File activerecord/lib/active_record/model_schema.rb, line 131
    

implicit_order_column

在有序查找调用中使用显式排序子句时,记录排序的列的名称。如果未设置,则使用主键。

# File activerecord/lib/active_record/model_schema.rb, line 113
    

implicit_order_column=(column_name)

在有序查找调用中使用显式排序子句时,设置排序记录的列。对于主键不是自动递增整数(如 UUID)的模型很有用。

默认情况下,记录会按主键进行子排序,以确保结果确定。要禁用此子排序行为,请将 'implicit_order_column' 设置为 `[“column_name”, nil]`。

# File activerecord/lib/active_record/model_schema.rb, line 120
    

inheritance_column

在单表继承情况下存储类名的表列的名称。

默认的继承列名是 type,这意味着它在 Active Record 中是一个保留字。要能够使用其他列名进行单表继承,或在您自己的模型中使用 type 列用于其他目的,您可以设置 inheritance_column

self.inheritance_column = 'zoink'

如果您希望完全禁用单表继承,可以将 inheritance_column 设置为 nil

self.inheritance_column = nil
# File activerecord/lib/active_record/model_schema.rb, line 139
    

inheritance_column=(column)

定义将在单表继承情况下存储类名的表列的名称。

# File activerecord/lib/active_record/model_schema.rb, line 164
included do
  class_attribute :primary_key_prefix_type, instance_writer: false
  class_attribute :table_name_prefix, instance_writer: false, default: ""
  class_attribute :table_name_suffix, instance_writer: false, default: ""
  class_attribute :schema_migrations_table_name, instance_accessor: false, default: "schema_migrations"
  class_attribute :internal_metadata_table_name, instance_accessor: false, default: "ar_internal_metadata"
  class_attribute :pluralize_table_names, instance_writer: false, default: true
  class_attribute :implicit_order_column, instance_accessor: false
  class_attribute :immutable_strings_by_default, instance_accessor: false

  class_attribute :inheritance_column, instance_accessor: false, default: "type"
  singleton_class.class_eval do
    alias_method :_inheritance_column=, :inheritance_column=
    private :_inheritance_column=
    alias_method :inheritance_column=, :real_inheritance_column=
  end

  self.protected_environments = ["production"]

  self.ignored_columns = [].freeze
  self.only_columns = [].freeze

  delegate :type_for_attribute, :column_for_attribute, to: :class

  initialize_load_schema_monitor
end

internal_metadata_table_name

内部元数据表的名称。默认情况下,值为 "ar_internal_metadata"

# File activerecord/lib/active_record/model_schema.rb, line 85
    

internal_metadata_table_name=(table_name)

设置内部元数据表的名称。

# File activerecord/lib/active_record/model_schema.rb, line 91
    

pluralize_table_names

指示表名是否应为相应类名的复数形式。如果为 true,则 Product 类的默认表名为“products”。如果为 false,则仅为“product”。有关表/类命名的完整规则,请参阅 table_name。默认情况下,此值为 true。

# File activerecord/lib/active_record/model_schema.rb, line 97
    

pluralize_table_names=(value)

设置表名是否应为相应类名的复数形式。如果为 true,则 Product 类的默认表名为“products”。如果为 false,则仅为“product”。有关表/类命名的完整规则,请参阅 table_name。默认情况下,此值为 true。

# File activerecord/lib/active_record/model_schema.rb, line 105
    

primary_key_prefix_type

将添加到每个主键列名之前的名称前缀类型。选项包括 :table_name:table_name_with_underscore。如果指定了前者,Product 类将查找“productid”而不是“id”作为主键列。如果指定了后者,Product 类将查找“product_id”而不是“id”。请记住,这是所有 Active Record 的全局设置。

# File activerecord/lib/active_record/model_schema.rb, line 17
    

primary_key_prefix_type=(prefix_type)

设置将添加到每个主键列名之前的名称前缀类型。选项包括 :table_name:table_name_with_underscore。如果指定了前者,Product 类将查找“productid”而不是“id”作为主键列。如果指定了后者,Product 类将查找“product_id”而不是“id”。请记住,这是所有 Active Record 的全局设置。

# File activerecord/lib/active_record/model_schema.rb, line 27
    

schema_migrations_table_name

模式迁移表的名称。默认情况下,值为 "schema_migrations"

# File activerecord/lib/active_record/model_schema.rb, line 73
    

schema_migrations_table_name=(table_name)

设置模式迁移表的名称。

# File activerecord/lib/active_record/model_schema.rb, line 79
    

table_name_prefix

添加到每个表名称前面的前缀字符串。

# File activerecord/lib/active_record/model_schema.rb, line 37
    

table_name_prefix=(prefix)

设置添加到每个表名称前面的前缀字符串。例如,如果设置为“basecamp_”,则所有表名将命名为“basecamp_projects”、“basecamp_people”等。这是在共享数据库中创建表命名空间的便捷方法。默认情况下,前缀为空字符串。

如果您在模块内组织模型,可以通过在父模块中定义一个名为 table_name_prefix 的单例方法来为命名空间内的模型添加前缀,该方法返回您选择的前缀。

# File activerecord/lib/active_record/model_schema.rb, line 43
    

table_name_suffix

要附加到每个表名称的后缀字符串。

# File activerecord/lib/active_record/model_schema.rb, line 56
    

table_name_suffix=(suffix)

功能类似于 table_name_prefix=,但附加而不是前置(设置为“_basecamp”将得到“projects_basecamp”、“people_basecamp”)。默认情况下,后缀为空字符串。

如果您在模块内组织模型,可以通过在父模块中定义一个名为 table_name_suffix 的单例方法来为命名空间内的模型添加后缀,该方法返回您选择的后缀。

# File activerecord/lib/active_record/model_schema.rb, line 62
    

实例公共方法

id_value

返回名为“id”的列的底层列值。当定义包含“id”列的复合主键时很有用,以便值可读。

# File activerecord/lib/active_record/model_schema.rb, line 10