A Person
может иметь много Events
, и каждый Event
может иметь одну полиморфную запись Eventable
. Как указать связь между записью Person
и Eventable
?
Вот модели, которые у меня есть:
class Event < ActiveRecord::Base
belongs_to :person
belongs_to :eventable, :polymorphic => true
end
class Meal < ActiveRecord::Base
has_one :event, :as => eventable
end
class Workout < ActiveRecord::Base
has_one :event, :as => eventable
end
Основной вопрос касается класса Person
:
class Person < ActiveRecord::Base
has_many :events
has_many :eventables, :through => :events # is this correct???
end
Я говорю has_many :eventables, :through => :events
, как я сделал выше?
Или мне нужно написать все так:
has_many :meals, :through => :events
has_many :workouts, :through => :events
Если вы видите более простой способ добиться того, что мне нужно, я все уши!: -)