Mysql
 sql >> Database >  >> RDS >> Mysql

ActiveModel::MissingAttributeError:impossibile scrivere l'attributo sconosciuto `user_id`

Hai eseguito la migrazione sbagliata, invece di aggiungere un user_id a comments aggiungi users.commed .

Ops. Può succedere al meglio di noi.

Quindi prima creiamo una migrazione per ripulire questo errore:

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

Ovviamente se l'app non è stata distribuita puoi semplicemente eliminare la migrazione incriminata ed eseguire rake db:reset

Quindi creiamo la migrazione corretta

rails g migration AddUserToComments user:belongs_to

Che genera la seguente migrazione:

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

add_reference crea un indice e una chiave esterna in un'unica scansione.