Как правильно создать ActiveRecord таблицы NxN? - PullRequest
0 голосов
/ 13 января 2020

В моем приложении Rails есть следующая база данных

def change
    create_table :animals do |t|
      t.string :name

      t.timestamps
    end

    create_table :owners do |t|
      t.string :name

      t.timestamps
    end

    create_join_table :animals, :owners do |t|
        t.string :description

        t.timestamps
    end
end

Как мне создать ActiveRecord таблицы animals_owners, например: AnimalOwner, чтобы при выполнении AnimalOwner.create(...) она использовала animals_owners таблица, а не animal_owners?

1 Ответ

2 голосов
/ 13 января 2020

2 способа достижения желаемого:

  1. Вы можете указать имя объединяемой таблицы при создании таблицы как animal_owners, добавив параметр table_name (прочитано о других параметрах здесь ) затем создайте модель AnimalOwner в обычном режиме. Я предпочитаю этот способ

  2. Вы можете создать таблицу соединений с именем animals_owners (имя по умолчанию), затем создать AnimalOwner модель и добавить self.table_name = animals_owner внутри модели (self.set_table_name = animals_owner для Rails <= 3.1) для указания имени таблицы, которое не соответствует соглашениям Rail </p>

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