/ / ¿Cómo agrego asociaciones entre tablas utilizando rieles para generar modelo - ruby-on-rails

¿Cómo puedo agregar asociaciones entre tablas utilizando rieles para generar modelo? Ruby-on-Rails

El título lo dice todo de verdad. Me parece que los rieles generan mystuff modelo. generará un modelo que está vacío aparte de

class mystuff < ActiveRecord::Base
end

También genera un archivo de migración que puedo enviar a la base de datos con

rake db:migrate

lo cual es genial hasta que quiero lanzar una relación has_many. En este caso vuelvo al modelo para que parezca, por ejemplo:

 class mystuff < ActiveRecord::Base
has_many :posts
end

Entonces corro rake db:migrate otra vez, pero debido a que el archivo de migración no se ha actualizado, no sucede nada interesante.

Entonces corro

rails generate migration mystuff and the migration file appears.

Genial. Ahora quiero actualizar la propia base de datos para ejecutar rake db:migrate de nuevo y las actualizaciones del esquema. Todo esto es un poco prolijo, así que hay una manera en la que puedo generar todas las asociaciones cuando estoy generando el modelo. Eso sería más fácil.

Respuestas

0 para la respuesta № 1

has_many no creará una migración de base de datos para usted. Te permite establecer una asociación entre las clases. Tendría que crear una nueva migración por su cuenta para agregar una columna. Si está familiarizado con las claves externas, el belongs_to normalmente irá a la clase (modelo) donde se encuentra el FK.

Por ejemplo, si un estado está asociado con una tarea (es decir, si desea un status_id para una "tarea", agregaría un belongs_to en la tarea y una has_one o has_many al Estado. A continuación, genera una migración para agregar un status_id a la tabla de tareas, es decir, algo como: rails g migration AddStatusToTasks status:references.