En créant un service Web auquel j'ai pensé pour la première fois avec des rails, je me suis soudainement mis en colère lors de la création d'un nouvel utilisateur
unknown attribute 'password' for User.
def create
@user = User.new(
name: params[:name],
email: params[:email],
password: params[:password]
On m'a dit qu'il n'y a pas de colonne de mot de passe, je vais donc vérifier la colonne dans le tableau Utilisateurs
$ rails console
$ User.new
Loading development environment (Rails 6.0.3.1)
irb(main):001:0> User.new
(7.5ms) SELECT sqlite_version(*)
=> #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil>
Il n'y a certainement pas de colonne de mot de passe. La colonne de mot de passe doit avoir été créée dans la table des utilisateurs en créant un fichier de migration, mais ... Jetons un coup d'œil au fichier de migration
class AddPasswordToUsers < ActiveRecord::Migration[6.0]
def change
add_column: :users, :password, :string
end
end
Il y avait un deux-points supplémentaire après add_column
Correction de l'erreur de code précédente et rails db: migrer et cela a fonctionné C'était une erreur rudimentaire alors je veux faire attention
Recommended Posts