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

ActiveModel::MissingAttributeError:kan ikke skrive ukendt attribut `user_id`

Du har den forkerte migrering - i stedet for at tilføje et user_id til comments du tilføjer users.commed .

Ups. Det kan ske for de bedste af os.

Så lad os først oprette en migrering for at rydde op i denne fejl:

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

Hvis appen ikke er blevet implementeret, kan du selvfølgelig bare slette den stødende migrering og køre rake db:reset

Så lad os skabe den korrekte migrering

rails g migration AddUserToComments user:belongs_to

Hvilket genererer følgende migrering:

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

add_reference opretter et indeks og en fremmednøgle i ét sweep.




  1. syntaksfejl ved eller nær 'ordre' i PostgreSQL

  2. SqlNullValueException ved udførelse af en lagret procedure med MySqlCommand

  3. Laravel SQLSTATE[22007]:Ugyldigt datetime-format:1292 Forkert datetime-værdi:'2019-03-10 02:00:39' for kolonnen 'updated_at' (sommertid?)

  4. Forespørgsel i en relationsdatabase gennem Google DataFlow Transformer