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

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

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

inheritance_column=(column)

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

# File activerecord/lib/active_record/model_schema.rb, line 162
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”。请记住,这是所有 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