Вы должны использовать четвертую модель с полиморфной ассоциацией, а затем поместить в нее список.
Во-первых, прочитайте о полиморфных ассоциациях, чтобы понять это: http://guides.rubyonrails.org/association_basics.html#polymorphic-associations
Теперь вам нужно иметь класс, который выглядит следующим образом:
class Position < ActiveRecord::Base
belongs_to :positionable, polymorphic: true
end
И миграция, которая выглядит следующим образом:
class CreatePositions < ActiveRecord::Migration
def change
create_table :position do |t|
t.integer :positionable_id
t.string :positionable_type
t.timestamps
end
end
end
Затем к каждой из других моделей добавьте это:
class Facility < ActiveRecord::Base
has_one :position, as: :positionable
# ...
end