sql >> Databáze >  >> RDS >> Mysql

ActiveModel::MissingAttributeError:nelze zapsat neznámý atribut `user_id`

Máte špatnou migraci – místo přidání user_id do comments přidáte users.commed .

Jejda. Může se to stát i těm nejlepším z nás.

Nejprve tedy vytvořte migraci, která tuto chybu vyčistí:

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

Samozřejmě, pokud aplikace nebyla nasazena, můžete jednoduše odstranit problematickou migraci a spustit rake db:reset

Pojďme tedy vytvořit správnou migraci

rails g migration AddUserToComments user:belongs_to

Což generuje následující migraci:

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

add_reference vytvoří index a cizí klíč jedním pohybem.




  1. Po odeslání formuláře pomocí php a jquery ajax nelze vložit data do databáze

  2. Odkazem lze předávat pouze proměnné - php

  3. Vytváření názvů tabulek, které jsou vyhrazenými slovy/klíčovými slovy v MS SQL Server

  4. PŘEPNOUT s LIKE uvnitř SELECT dotazu v MySQL