2
2

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 5 years have passed since last update.

Deviseを入れた後、コンソールからのUser.firstやUser.all等がArgmentErrorになる

Last updated at Posted at 2019-10-02

結論

Userモデルから
password_digestカラム
を削除すると解消する。

起こったこと

Deviseを入れた後、コンソールからのUser.firstやUser.all等が下記のようにArgmentErrorになる

irb(main):001:0> User.all
  User Load (1.8ms)  SELECT  "users".* FROM "users" LIMIT ?  [["LIMIT", 11]]
Traceback (most recent call last):
ArgumentError (wrong number of arguments (given 0, expected 1))
irb(main):002:0> User.find(1)
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?  [["id", 1], ["LIMIT", 1]]
Traceback (most recent call last):

下記のissueにある通り、DeviseでUserモデルをセットアップした時に、既にUserモデルに
password_digestカラム
が存在すると、上記のエラーが出ます。

参考
https://github.com/plataformatec/devise/issues/

スクリーンショット 2019-10-02 15.56.22.png

今回は既にUserモデルを作っていて、後からDeviseを導入したのでおそらくDeviseの
encrypted_passwordカラム
とバッティングして発生していると思われる。

なので、Userモデルから
password_digestカラム
を削除すると解消しました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?