Несколько взаимосвязей с одной и той же вещью - PullRequest
2 голосов
/ 13 ноября 2011

Я очень плохо знаком с рельсами, поэтому, пожалуйста, прости мои ограниченные знания.

Если бы я хотел создать веб-приложение для пилотов, чтобы регистрировать рейсы, у меня могли бы быть следующие модели ...

class Flight < ActiveRecord::Base
    belongs_to :plane
    belongs_to :pilot
end

class Plane < ActiveRecord::Base
    has_many :flights
end

class Pilot < ActiveRecord::Base
    has_many :flights
end

Однако, если бы я хотел, чтобы мой класс Полет был связан с классом Аэропорт дважды, один для аэропорта отправления и снова для аэропорта назначения, как бы я это сделал?

Также как быЗатем я установлю отношения на стороне аэропорта? ...

Любой совет по этому вопросу будет очень признателен.

1 Ответ

5 голосов
/ 13 ноября 2011

Вы должны установить параметры class_name и foreign_key. Вы можете попробовать что-то вроде:

belongs_to :origin_airport, :class_name => "Airport", :foreign_key => "origin_airport_id"
belongs_to :destination_airport, :class_name => "Airport", :foreign_key => "destination_airport_id"

Очевидно, что наименование зависит от вас. Есть пример в документах .

...