Skip to content

Commit

Permalink
Fix to support child classes of composite primary key models.
Browse files Browse the repository at this point in the history
  • Loading branch information
Charlie Savage committed Dec 4, 2010
1 parent b8bba25 commit 65aee6e
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions lib/composite_primary_keys/base.rb
Expand Up @@ -23,11 +23,6 @@ def set_primary_keys(*keys)
include CompositeInstanceMethods
include CompositePrimaryKeys::ActiveRecord::AssociationPreload
EOV

class << unscoped
include CompositePrimaryKeys::ActiveRecord::FinderMethods::InstanceMethods
include CompositePrimaryKeys::ActiveRecord::Relation::InstanceMethods
end
end

def composite?
Expand Down Expand Up @@ -89,6 +84,20 @@ def composite?
def ids_to_s(many_ids, id_sep = CompositePrimaryKeys::ID_SEP, list_sep = ',', left_bracket = '(', right_bracket = ')')
many_ids.map {|ids| "#{left_bracket}#{CompositePrimaryKeys::CompositeKeys.new(ids)}#{right_bracket}"}.join(list_sep)
end

def relation #:nodoc:
@relation ||= begin
result = Relation.new(self, arel_table)
# CPK
class << result
include CompositePrimaryKeys::ActiveRecord::FinderMethods::InstanceMethods
include CompositePrimaryKeys::ActiveRecord::Relation::InstanceMethods
end
result
end

finder_needs_type_condition? ? @relation.where(type_condition) : @relation
end
end

module CompositeInstanceMethods
Expand Down

0 comments on commit 65aee6e

Please sign in to comment.