mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
fb86ecd604
This is an alternative of #31877 to fix #31876 caused by #28808. This issue was caused by a combination of several loose implementation. * finding automatic inverse association of polymorphic without context (caused by #28808) * returning `klass` even if `polymorphic?` (exists before #28808) * loose verification by `valid_inverse_reflection?` (exists before #28808) This makes `klass` raise if `polymorphic?` not to be misused. This issue will not happen unless polymorphic `klass` is misused. Fixes #31876. Closes #31877.
10 lines
496 B
Ruby
10 lines
496 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Sponsor < ActiveRecord::Base
|
|
belongs_to :sponsor_club, class_name: "Club", foreign_key: "club_id"
|
|
belongs_to :sponsorable, polymorphic: true
|
|
belongs_to :sponsor, polymorphic: true
|
|
belongs_to :thing, polymorphic: true, foreign_type: :sponsorable_type, foreign_key: :sponsorable_id
|
|
belongs_to :sponsorable_with_conditions, -> { where name: "Ernie" }, polymorphic: true,
|
|
foreign_type: "sponsorable_type", foreign_key: "sponsorable_id"
|
|
end
|