Организация взаимосвязей моделей


#1

Пытаюсь переписать существующий проект на Rails5 + PostgreSQL. Сейчас он на Ruby/Sinatra + MongoDB. И из-за различий в базах закрался вопрос.

Ситуация такая. Есть несколько сущностей:

  • новость
  • источник новости
  • область, в которой этот источник отображается
  • плюс разная мелочевка.

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

В MongoDB просто - тип Array в области, а там айдишники источников. В PostgreSQL тоже есть Array, но с помощью генератора модели такое поле сделать не дал.

Подскажите, как правильней это сделать.


(Kortirso) #2

add_column :table_name, :column_name, :string, array: true, default: []

или

create_table :table_name do |t|
    t.string :column_name, default: [], array: true