В настоящее время я разрабатываю приложение с использованием Rails 3.2 и столкнулся с небольшой проблемой. Я знаю, что об этом уже спрашивали сотни раз, но я не смог найти ответ, который решил бы эту проблему. Вот похожий ER: http://i.stack.imgur.com/x5V0G.png а>
Довольно очевидно, что я пытаюсь сделать. Я надеюсь, что ассоциация будет выглядеть следующим образом:
Supplier.first.theatres.first.events.first.orders
TourEvent.first.orders
Tour.first.orders
Теперь было бы неплохо иметь возможность определять мои модели так:
class Event < ActiveRecord::Base
has_many :orders
belongs_to :eventable, polymorphic: true
# id, eventable_id, eventable_type, title, date, price
end
class TourEvent < Event
belongs_to :tour
# id, tour_id, rendezvous, guide_name
end
class Tour < ActiveRecord::Base
has_many :events, class_name: 'TourEvent'
# id, name, venue, duration
end
Но я понимаю, что это зарезервировано для «STI», а не для «MTI». Есть идеи, как заставить мое решение работать без сложных миксинов или плагинов? Или это просто невозможно?