Создать миграцию-создать таблицу соединений
Я просмотрел много SO
и google
сообщения для создания миграции таблицы соединений для has many and belongs to many
ассоциации и ничего не работают.
все решения генерируют пустой файл миграции.
Я использую rails 3.2.13
и у меня есть две таблицы: security_users
и assignments
. Вот некоторые из вещей, которые я пробовал:
rails generate migration assignments_security_users
rails generate migration create_assignments_security_users
rails generate migration create_assignments_security_users_join_table
rails g migration create_join_table :products, :categories (following the official documentation)
rails generate migration security_users_assignments security_user:belongs_to assignments:belongs_to
может ли кто-нибудь сказать, как создать миграцию таблицы соединения между двумя таблицами?
3 ответа:
выполните эту команду, чтобы создать пустой файл миграции (он не заполняется автоматически, вам нужно заполнить его самостоятельно):
rails generate migration assignments_security_users
открыть созданный файл миграции и добавьте этот код:
выполнитьclass AssignmentsSecurityUsers < ActiveRecord::Migration def change create_table :assignments_security_users, :id => false do |t| t.integer :assignment_id t.integer :security_user_id end end end
rake db:migrate
С вашего терминала. Я создал тест на many_to_many отношения самый простой пример, который может помочь вам.
чтобы автоматически заполнить команду create_join_table в командной строке, она должна выглядеть следующим образом:
rails g migration CreateJoinTableProductsSuppliers products suppliers
для модели продукта и модели поставщика. Rails создаст таблицу под названием "products_suppliers". Обратите внимание на плюрализацию.
(замечу, что
generation
команда может быть сокращена до простоg
)