Лучший способ перебрать полиморфную ассоциацию - PullRequest
1 голос
/ 26 марта 2011

Итак - имея следующую настройку:

class Event < ActiveRecord::Base
 has_many :invitations
end

class Invitation < ActiveRecord::Base
  belongs_to :guest, :polymorphic => true
  belongs_to :event
end

class Member > ActiveRecord::Base
  has_many :invitations, :as => :guest

  def full_name
    [first_name, last_name].join(" ")
  end
end

class Visitor > ActiveRecord::Base
  has_many :invitations, :as => :guest

  def full_name
    name
  end
end

В конце я хочу получить приглашения на мероприятия , заказанные гостями full_name . Я не могу понять, как - кто-нибудь, кто может помочь мне решить это? Буду очень признателен:)

1 Ответ

2 голосов
/ 27 марта 2011

Поскольку full_name - это виртуальные атрибуты, я могу представить только решение ruby, а не sql

event = Event.find some event
event.invitations.sort_by(&:full_name) 
...