4
1

More than 3 years have passed since last update.

railsで新規ユーザー作成中unknown attribute 'password' for User.と怒られた

Last updated at Posted at 2020-06-09

自分ではじめて考えたあるwebサービスをrailsで作成中,ユーザーの新規作成のところでいきなり怒られてしまった

unknown attribute 'password' for User.

  def create
    @user = User.new(
      name: params[:name],
      email: params[:email],
      password: params[:password]

原因究明

パスワードカラムがないといわれたのでUsersテーブルのカラムを調べてみる

$ 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>

たしかにパスワードカラムがない。パスワードカラムはマイグレーションファイルを作成して新たにusersテーブルに作ったはずだが、、、
そのマイグレーションファイルを見てみよう

class AddPasswordToUsers < ActiveRecord::Migration[6.0]
  def change
    add_column: :users, :password, :string
  end
end

add_columnの後ろ余分なコロンがついてしまっていた

結論

先ほどのコードミスを訂正してrails db:migrateしたらうまくいった
初歩的なミスだったので気を付けたい

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1