4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?