ruby on rails - rails - Generar migración: crear tabla de unión
rollback migration rails (3)
Ejecute este comando para generar el archivo de migración vacío (no se rellena automáticamente, debe rellenarlo usted mismo):
rails generate migration assignments_security_users
Abra el archivo de migración generado y agregue este código:
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
Luego ejecute rake db:migrate
desde su terminal. Creé un cuestionario sobre muchas-a-muchas relaciones con un ejemplo simple que podría ayudarte.
He revisado muchas publicaciones de SO
y google
para generar migración de join table porque has many and belongs to many
asociaciones y nada funciona.
Todas las soluciones están generando un archivo de migración vacío.
Estoy usando rails 3.2.13
y tengo dos tablas: security_users
y assignments
. Estas son algunas de las cosas que intento:
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
¿Alguien puede decir cómo crear una migración de tabla de unión entre dos tablas?
Normalmente me gusta tener el archivo "modelo" cuando creo la tabla de unión. Por lo tanto, lo hago.
rails g model AssignmentSecurityUser assignments_security:references user:references
Para autopoblar el comando create_join_table en la línea de comando, debería verse así:
rails g migration CreateJoinTableProductsSuppliers products suppliers
Para un modelo de Producto y un modelo de Proveedor. Rails creará una tabla titulada "products_suppliers". Tenga en cuenta la pluralización.
(Nota al margen que el comando de generation
puede acortarse a solo g
)