跳至内容 跳至搜索
命名空间
方法
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 129
    

implicit_order_column

如果在有序查找器调用期间未使用显式顺序子句,则记录按其排序的列的名称。如果未设置,则使用主键。

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

implicit_order_column=(column_name)

设置在有序查找器调用期间未使用显式顺序子句时对记录进行排序的列。当主键不是自动递增整数时很有用,例如当它是 UUID 时。如果存在主键,则记录按主键进行子排序,以确保确定性结果。

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

inheritance_column

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

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

self.inheritance_column = 'zoink'
# File activerecord/lib/active_record/model_schema.rb, line 137
    

inheritance_column=(column)

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

# File activerecord/lib/active_record/model_schema.rb, line 157
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

  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”。请记住,这是所有活动记录的全局设置。

# 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”。请记住,这是所有活动记录的全局设置。

# 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=(前缀)

设置前缀字符串以添加到每个表名之前。因此,如果设置为“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=(后缀)

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