自分ではじめて考えたある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したらうまくいった
初歩的なミスだったので気を付けたい