diff options
author | Jon Leighton <j@jonathanleighton.com> | 2011-10-05 01:09:43 +0100 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2011-10-05 01:11:40 +0100 |
commit | ee2be435b1e5c0e94a4ee93a1a310e0471a77d07 (patch) | |
tree | d30036d8c7f8520df4c6cd4c47e0f7733abe3525 /activerecord/lib/active_record/attribute_methods/primary_key.rb | |
parent | 5711a35ad8faa3fb6d138b234cbe9acfad27a9a8 (diff) | |
download | rails-ee2be435b1e5c0e94a4ee93a1a310e0471a77d07.tar.gz rails-ee2be435b1e5c0e94a4ee93a1a310e0471a77d07.tar.bz2 rails-ee2be435b1e5c0e94a4ee93a1a310e0471a77d07.zip |
Raise error on unknown primary key.
If we don't have a primary key when we ask for it, it's better to fail
fast. Fixes GH #2307.
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods/primary_key.rb')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods/primary_key.rb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/primary_key.rb b/activerecord/lib/active_record/attribute_methods/primary_key.rb index a404a5edd7..36d7f4ad11 100644 --- a/activerecord/lib/active_record/attribute_methods/primary_key.rb +++ b/activerecord/lib/active_record/attribute_methods/primary_key.rb @@ -14,6 +14,8 @@ module ActiveRecord # primary_key_prefix_type setting, though. def primary_key @primary_key ||= reset_primary_key + raise ActiveRecord::UnknownPrimaryKey.new(self) unless @primary_key + @primary_key end # Returns a quoted version of the primary key name, used to construct SQL statements. @@ -29,6 +31,11 @@ module ActiveRecord key end + def primary_key? #:nodoc: + @primary_key ||= reset_primary_key + !@primary_key.nil? + end + def get_primary_key(base_name) #:nodoc: return 'id' unless base_name && !base_name.blank? |