Mysql
 sql >> база данни >  >> RDS >> Mysql

ActiveModel::MissingAttributeError:не може да запише неизвестен атрибут `user_id`

Имате грешна миграция - вместо да добавите user_id към comments добавяте users.commed .

опа Може да се случи и на най-добрите от нас.

Затова първо нека създадем миграция, за да изчистим тази грешка:

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

Разбира се, ако приложението не е внедрено, можете просто да изтриете нарушаващата миграция и да изпълните rake db:reset

Така че нека създадем правилната миграция

rails g migration AddUserToComments user:belongs_to

Което генерира следната миграция:

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

add_reference създава индекс и външен ключ с едно движение.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да импортирам база данни с MySQL от терминал?

  2. MySQL заявка низ съдържа

  3. MySQL Нуждаем се от помощ при дефинирането на SQL за премахване на нежелани редове

  4. Оттеглени функции на MySql

  5. Конвертирайте данни от MySQL в JSON с помощта на PHP