You should use the fourth model with polymorphic association, and then put the list in it.
Check out polymorphic associations first to understand this: http://guides.rubyonrails.org/association_basics.html#polymorphic-associations
Now you need a class that looks like this:
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