Подтвердить что ты не робот

Создать миграцию - создать таблицу соединений

Я просмотрел много сообщений 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 

Может ли кто-нибудь сказать, как создать миграцию таблицы соединений между двумя таблицами?

4b9b3361

Ответ 1

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

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 с простым примером, который мог бы вам помочь.

Ответ 2

Чтобы автопопулить команду create_join_table в командной строке, она должна выглядеть так:

rails g migration CreateJoinTableProductsSuppliers products suppliers

Для модели продукта и модели поставщика. Rails создаст таблицу под названием "products_suppliers". Обратите внимание на плюрализацию.

(Обратите внимание, что команда generation может быть сокращена до g)

Ответ 3

Мне обычно нравится иметь "модельный" файл, когда я создаю таблицу соединений. Поэтому я делаю.

rails g model AssignmentSecurityUser assignments_security:references user:references