Froze rails gems
[depot.git] / vendor / rails / activerecord / lib / active_record / associations / has_one_through_association.rb
diff --git a/vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb b/vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb
new file mode 100644 (file)
index 0000000..8073eba
--- /dev/null
@@ -0,0 +1,31 @@
+module ActiveRecord
+  module Associations
+    class HasOneThroughAssociation < HasManyThroughAssociation
+      
+      def create_through_record(new_value) #nodoc:
+        klass = @reflection.through_reflection.klass
+
+        current_object = @owner.send(@reflection.through_reflection.name)
+        
+        if current_object
+          current_object.update_attributes(construct_join_attributes(new_value))
+        else
+          @owner.send(@reflection.through_reflection.name,  klass.send(:create, construct_join_attributes(new_value)))
+        end
+      end
+      
+    private
+      def find(*args)
+        super(args.merge(:limit => 1))
+      end
+    
+      def find_target
+        super.first
+      end
+
+      def reset_target!
+        @target = nil
+      end        
+    end        
+  end
+end