Mysql
 sql >> Baza danych >  >> RDS >> Mysql

ActiveModel::MissingAttributeError:nie można zapisać nieznanego atrybutu `user_id`

Masz nieprawidłową migrację - zamiast dodawać user_id do comments dodajesz users.commed .

Ups. To może się przydarzyć najlepszym z nas.

Więc najpierw utwórzmy migrację, aby naprawić ten błąd:

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

Oczywiście, jeśli aplikacja nie została wdrożona, możesz po prostu usunąć naruszającą migrację i uruchomić rake db:reset

Stwórzmy więc prawidłową migrację

rails g migration AddUserToComments user:belongs_to

Co generuje następującą migrację:

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

add_reference tworzy indeks i klucz obcy za jednym zamachem.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę sprawdzić moje ustawienia InnoDB?

  2. wysyłanie użytkownikowi wiadomości poprzez przekazanie jego identyfikatora do pola modalnego

  3. parsowanie danych z pliku do java, a następnie do bazy mysql

  4. Jak mogę sprawić, by mysql wypisał datę i godzinę na numer dnia juliańskiego?

  5. Nie można załadować żądanej klasy:com.mysql.jdbc.Driver na JBoss przy użyciu Hibernate