Rails 多态条目 - 按外部字段排序

Rails polymorphic entries - sort by external field

我有可以在电影或电视节目中扮演角色的演员 - 我的应用程序处理这些不同,因此我有一个多态的模型“角色”。 当我展示一个演员时,我想展示两个表格——一个是他们出演的所有电影(按电影名称排序),另一个是他们出演的所有剧集(再次按名称排序)。我不确定如何访问“外部”标题字段来执行此操作。 必须有类似 @actor.roles.sort_by..... ?

的东西

模特:演员

class Actor < ApplicationRecord
    validates :first_name, presence: true
    validates :first_name, uniqueness: { scope: :last_name }

    has_many :roles, dependent: :destroy
    has_many :movies, through: :roles, :source => 'castable', :source_type => 'Movie'
    has_many :episodes, through: :roles, :source => 'castable', :source_type => 'Episode'
...

模型:角色

class Role < ApplicationRecord
  belongs_to :actor
  belongs_to :castable, polymorphic: true
end

型号:电影

class Movie < ApplicationRecord
    validates :title, presence: true, uniqueness: true
    has_many :roles, as: :castable, dependent: :destroy
    has_many :actors, through: :roles
    ...

型号:剧集

class Episode < ApplicationRecord
    has_many :roles, as: :castable, dependent: :destroy
    has_many :actors, through: :roles
    ...

我找到了部分答案 in this SO question。不确定这有多优雅,但它确实有效:)