Создать миграцию-создать таблицу соединений
Я просмотрел много 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 endrake db:migrateС вашего терминала. Я создал тест на many_to_many отношения самый простой пример, который может помочь вам.
чтобы автоматически заполнить команду create_join_table в командной строке, она должна выглядеть следующим образом:
rails g migration CreateJoinTableProductsSuppliers products suppliersдля модели продукта и модели поставщика. Rails создаст таблицу под названием "products_suppliers". Обратите внимание на плюрализацию.
(замечу, что
generationкоманда может быть сокращена до простоg)