Methods
- D
- P
- Q
Instance Public methods
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 28 def define_method_attribute(attr_name) super if attr_name == primary_key && attr_name != 'id' generated_attribute_methods.send(:alias_method, :id, primary_key) generated_external_attribute_methods.module_eval " def id(v, attributes, attributes_cache, attr_name) attr_name = '#{primary_key}' send(attr_name, attributes[attr_name], attributes, attributes_cache, attr_name) end ", __FILE__, __LINE__ end end
Defines the primary key field – can be overridden in subclasses. Overwriting will negate any effect of the primary_key_prefix_type setting, though.
Sets the name of the primary key column.
class Project < ActiveRecord::Base self.primary_key = "sysid" end
You can also define the #primary_key method yourself:
class Project < ActiveRecord::Base def self.primary_key "foo_" + super end end Project.primary_key # => "foo_id"
Returns a quoted version of the primary key name, used to construct SQL statements.