Module: ActiveRecord::Base::CompositeClassMethods

Defined in:
lib/composite_primary_keys/base.rb

Instance Method Summary collapse

Instance Method Details

#composite?Boolean

Returns:

  • (Boolean)


78
79
80
# File 'lib/composite_primary_keys/base.rb', line 78

def composite?
  true
end

#ids_to_s(many_ids, id_sep = CompositePrimaryKeys::ID_SEP, list_sep = ',', left_bracket = '(', right_bracket = ')') ⇒ Object

ids_to_s([,[7,3]]) -> “(1,2),(7,3)” ids_to_s([,[7,3]], ‘,’, ‘;’) -> “1,2;7,3”



84
85
86
# File 'lib/composite_primary_keys/base.rb', line 84

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

#primary_keyObject



70
71
72
# File 'lib/composite_primary_keys/base.rb', line 70

def primary_key
  primary_keys
end

#primary_key=(keys) ⇒ Object



74
75
76
# File 'lib/composite_primary_keys/base.rb', line 74

def primary_key=(keys)
  primary_keys = keys
end

#relationObject

:nodoc:



88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/composite_primary_keys/base.rb', line 88

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