跳到內容 跳到搜尋
命名空間
方法
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'

如果您希望完全停用單一資料表繼承,您可以將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

內部 metadata 表格的名稱。預設值為 "ar_internal_metadata"

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

internal_metadata_table_name=(table_name)

設定內部 metadata 表格的名稱。

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

pluralize_table_names

表示表格名稱是否應為對應類別名稱的複數形式。如果為真,則 Product 類別的預設表格名稱將為「products」。如果為假,則只會是「product」。有關表格/類別命名完整規則,請參閱 table_name。預設為真。

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

pluralize_table_names=(value)

設定表格名稱是否應為對應類別名稱的複數形式。如果為真,則 Product 類別的預設表格名稱將為「products」。如果為假,則只會是「product」。有關表格/類別命名完整規則,請參閱 table_name。預設為真。

# 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)

設定 schema migration 資料表的表名。

# 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