Будут ли эти отношения модели автоматически подбирать таблицу соединений? — Rails 3.1

#ruby-on-rails #ruby-on-rails-3

#ruby-on-rails #ruby-on-rails-3

Вопрос:

У меня есть 2 таблицы:

Единицы

Двойки

Оба имеют отношение has_many друг к другу в определении их модели. И третья таблица с именем Ones_Twos, которая содержит ассоциации между обоими.

Правильно ли, что rails автоматически подбирает ассоциации?

Редактировать: или оба поля должны быть has_and_belongs_to_many ?

Ответ №1:

Обе модели должны иметь has_and_belongs_to_many . Обратите внимание, что по соглашению имя таблицы объединения будет ones_twos (все в нижнем регистре).

Комментарии:

1. Я согласен с вами, но Rails также отлично работает с has_many :through

2. Если таблица соединений не содержит никакой другой информации (это не что иное, как таблица соединений), я бы просто использовал has_and_belongs_to_many .

3. Вы правы, но что, если он захочет добавить дополнительную информацию в таблицу объединения? 🙂

Ответ №2:

Это отношение называется «многие ко многим». И вы хотите установить это отношение через третью таблицу. Вы должны добавить belongs_to :one belongs_to :two оператор and в модель Ones_Twos. И это будет работать.

Вот еще немного информации: отношения Rails

Надеюсь, это вам поможет.

Комментарии:

1. Итак, я должен создать модель для таблицы ассоциаций? Я думал, что rails распознает это автоматически?

2. @Hopstream, нет, в этом нет необходимости! Rails распознает это автоматически.