1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
# frozen_string_literal: true
class Membership < ActiveRecord::Base
enum :type, %i(Membership CurrentMembership SuperMembership SelectedMembership TenantMembership)
belongs_to :member
belongs_to :club
end
class CurrentMembership < Membership
belongs_to :member
belongs_to :club, inverse_of: :membership
end
class SuperMembership < Membership
belongs_to :member, -> { order("members.id DESC") }
belongs_to :club
end
class SelectedMembership < Membership
def self.default_scope
select("'1' as foo")
end
end
class TenantMembership < Membership
cattr_accessor :current_member
belongs_to :member
belongs_to :club
default_scope -> {
if current_member
where(member: current_member)
else
all
end
}
end
|