1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activerecord/test/models/member.rb
Ryuta Kamizono 15e3e9cdcc Ensure to calculate column aliases after all table aliases are constructed
Currently, column aliases which is used for eager loading are calculated
before constructing all table aliases in FROM clause.

`JoinDependency#join_constraints` constructs table aliases for `joins`
first, and then always re-constructs table aliases for eager loading.

If both `joins` and eager loading are given a same table association,
the re-construction would cause the discrepancy between column aliases
and table aliases.

To avoid the discrepancy, the column aliases should be calculated after
all table aliases are constructed.

Fixes #30603.
2018-06-19 22:21:51 +09:00

45 lines
1.9 KiB
Ruby

# frozen_string_literal: true
class Member < ActiveRecord::Base
has_one :current_membership
has_one :selected_membership
has_one :membership
has_one :club, through: :current_membership
has_one :selected_club, through: :selected_membership, source: :club
has_one :favourite_club, -> { where "memberships.favourite = ?", true }, through: :membership, source: :club
has_one :hairy_club, -> { where clubs: { name: "Moustache and Eyebrow Fancier Club" } }, through: :membership, source: :club
has_one :sponsor, as: :sponsorable
has_one :sponsor_club, through: :sponsor
has_one :member_detail, inverse_of: false
has_one :organization, through: :member_detail
belongs_to :member_type
has_many :nested_member_types, through: :member_detail, source: :member_type
has_one :nested_member_type, through: :member_detail, source: :member_type
has_many :nested_sponsors, through: :sponsor_club, source: :sponsor
has_one :nested_sponsor, through: :sponsor_club, source: :sponsor
has_many :organization_member_details, through: :member_detail
has_many :organization_member_details_2, through: :organization, source: :member_details
has_one :club_category, through: :club, source: :category
has_one :general_club, -> { general }, through: :current_membership, source: :club
has_many :super_memberships
has_many :favourite_memberships, -> { where(favourite: true) }, class_name: "Membership"
has_many :clubs, through: :favourite_memberships
has_many :tenant_memberships
has_many :tenant_clubs, through: :tenant_memberships, class_name: "Club", source: :club
has_one :club_through_many, through: :favourite_memberships, source: :club
belongs_to :admittable, polymorphic: true
has_one :premium_club, through: :admittable
end
class SelfMember < ActiveRecord::Base
self.table_name = "members"
has_and_belongs_to_many :friends, class_name: "SelfMember", join_table: "member_friends"
end