aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2011-01-06 19:42:31 +0000
committerAaron Patterson <aaron.patterson@gmail.com>2011-01-07 15:03:15 -0800
commitd23c332e02932a6a06853193c79a21d70dbe139e (patch)
tree750c1f485a1fdccca06ac7d684a7f0ace57412ea /activerecord
parent5ecf6922487b5476509af2a89137c3cd3791f7ab (diff)
downloadrails-d23c332e02932a6a06853193c79a21d70dbe139e.tar.gz
rails-d23c332e02932a6a06853193c79a21d70dbe139e.tar.bz2
rails-d23c332e02932a6a06853193c79a21d70dbe139e.zip
Clean up create, create! and build in HasOneAssociation
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/associations/has_one_association.rb22
1 files changed, 8 insertions, 14 deletions
diff --git a/activerecord/lib/active_record/associations/has_one_association.rb b/activerecord/lib/active_record/associations/has_one_association.rb
index 285c2631ad..158ae376e1 100644
--- a/activerecord/lib/active_record/associations/has_one_association.rb
+++ b/activerecord/lib/active_record/associations/has_one_association.rb
@@ -2,22 +2,16 @@ module ActiveRecord
# = Active Record Belongs To Has One Association
module Associations
class HasOneAssociation < AssociationProxy #:nodoc:
- def create(attrs = {})
- new_record do |reflection|
- reflection.create_association(attrs)
- end
+ def create(attributes = {})
+ new_record(:create_association, attributes)
end
- def create!(attrs = {})
- new_record do |reflection|
- reflection.create_association!(attrs)
- end
+ def create!(attributes = {})
+ new_record(:create_association!, attributes)
end
- def build(attrs = {})
- new_record do |reflection|
- reflection.build_association(attrs)
- end
+ def build(attributes = {})
+ new_record(:build_association, attributes)
end
def replace(obj, dont_save = false)
@@ -69,8 +63,8 @@ module ActiveRecord
alias creation_attributes construct_owner_attributes
- def new_record
- record = scoped.scoping { yield @reflection }
+ def new_record(method, attributes)
+ record = scoped.scoping { @reflection.send(method, attributes) }
replace(record, true)
record
end