Я немного одурманен тем, как создать объединенную таблицу в ROR.Запутанная таблица путаницы - Ruby on Rails
Допустим, есть 2 таблицы:
- пользователя
- Книга
Для создания присоединяемой таблицы user_book
, мое первоначальное впечатление, что вы сделали это:
rails g migration user_book
Но мне сказали, что для создания фактической объединенной таблицы я генерирую фактическая модель:
rails g model user_book
Это правильно?
И если второй правильный, то как только я его создал, я открою его и добавлю в файл переноса book_id
и user_id
, а затем запустим команду rake db:migrate
. Это верно?
EDIT:
Просто хотел добавить, что
модель Пользователь будет иметь это: has_many :books, through: :user_book
Книга модель будет иметь следующее: has_many :users, through: :user_book
ИМХО, есть два способа: вы либо создать модель без таблицы, которая соответствует многим многое или что у вас есть, или создать фактическую таблицу (в случае, если у вас есть дополнительные атрибуты, целостность которых вы должны гарантировать на уровне db). Таким образом, в обоих случаях вы должны создать модель, но только во втором случае вам потребуется миграция , – potashin
Нет такой вещи, как «объединенный стол». Соединение - это то, что происходит, когда вы запрашиваете таблицу, а не то, что происходит при создании таблицы. Я рекомендую прочитать руководство по [Active Record Associations] (http://guides.rubyonrails.org/association_basics.html) Rails Guide, в котором расскажут вам, как создавать ассоциации между моделями и основы миграции. –