以下の様なクラスがあるとき class Company < AR::Base has_many :employments has_many :engineers, through: :employments, source: :employee, source_type: 'Engineer' end # STI の基底クラス class Employee < AR::Base; end # STI class Engineer < Employee; end # Polymorphic class Employment < AR::Base belongs_to :company belongs_to :employee, polymorphic: true end この時、 Employment#employee に Engineer のインスタンスをいれたらそのまま #employe