Active Record 属性方法主键
命名空间
方法
- I
- T
实例公共方法
id() 链接
返回主键列的值。如果主键是复合主键,则返回主键列值数组。
来源:显示 | 在 GitHub 上
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 20 def id return _read_attribute(@primary_key) unless @primary_key.is_a?(Array) @primary_key.map { |pk| _read_attribute(pk) } end
id=(value) 链接
设置主键列的值。如果主键是复合主键,则在设置的值不可枚举时引发 TypeError。
来源:显示 | 在 GitHub 上
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 34 def id=(value) if self.class.composite_primary_key? raise TypeError, "Expected value matching #{self.class.primary_key.inspect}, got #{value.inspect}." unless value.is_a?(Enumerable) @primary_key.zip(value) { |attr, value| _write_attribute(attr, value) } else _write_attribute(@primary_key, value) end end
id?() 链接
查询主键列的值。如果主键是复合主键,则必须可以查询所有主键列值。
来源:显示 | 在 GitHub 上
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 45 def id? if self.class.composite_primary_key? @primary_key.all? { |col| _query_attribute(col) } else _query_attribute(@primary_key) end end
id_before_type_cast() 链接
返回类型转换前主键列的值。如果主键是复合主键,则返回类型转换前主键列值数组。
来源:显示 | 在 GitHub 上
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 55 def id_before_type_cast if self.class.composite_primary_key? @primary_key.map { |col| attribute_before_type_cast(col) } else attribute_before_type_cast(@primary_key) end end
id_in_database() 链接
从数据库中返回主键列的值。如果主键是复合主键,则从数据库中返回主键列值数组。
来源:显示 | 在 GitHub 上
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 75 def id_in_database if self.class.composite_primary_key? @primary_key.map { |col| attribute_in_database(col) } else attribute_in_database(@primary_key) end end
id_was() 链接
返回主键列的先前值。如果主键是复合主键,则返回主键列先前值的数组。
来源:显示 | 在 GitHub 上
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 65 def id_was if self.class.composite_primary_key? @primary_key.map { |col| attribute_was(col) } else attribute_was(@primary_key) end end
to_key() 链接
如果存在,则返回用数组包装的此记录的主键值。
来源:显示 | 在 GitHub 上
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 13 def to_key key = id Array(key) if key end