sql >> Base de Datos >  >> RDS >> Mysql

ActiveModel::MissingAttributeError:no se puede escribir el atributo desconocido `user_id`

Tiene la migración incorrecta, en lugar de agregar un user_id a comments agregas users.commed .

Ups. Le puede pasar a lo mejor de nosotros.

Primero, creemos una migración para corregir este error:

class RemoveCommedFromUsers < ActiveRecord::Migration
  def change
    remove_column :users, :commed # will also remove the index
  end
end

Por supuesto, si la aplicación no se ha implementado, simplemente puede eliminar la migración infractora y ejecutar rake db:reset

Así que vamos a crear la migración correcta

rails g migration AddUserToComments user:belongs_to

Lo cual genera la siguiente migración:

class AddUserToComments < ActiveRecord::Migration
  def change
    add_reference :comments, :user, index: true
  end
end

add_reference crea un índice y una clave externa en un solo barrido.