実現したいこと
Dockerでrails7+postgresqlで環境構築しています。
sorceryを導入しています。
ユーザー登録をしたいのですが、突然できなくなってしまいました。
どのタイミングで出来なくなったのかは不明です。
ご教授いただきたいです。
発生している問題・エラーメッセージ
・ターミナルのログ
[9] pry(main)> User.create!(name: "user_1", email: "user_1@example.com", password: "aaaa", salt: "aaaa") TRANSACTION (0.4ms) BEGIN User Exists? (1.5ms) SELECT 1 AS one FROM "users" WHERE "users"."name" = $1 LIMIT $2 [["name", "user_1"], ["LIMIT", 1]] User Exists? (0.5ms) SELECT 1 AS one FROM "users" WHERE "users"."email" = $1 LIMIT $2 [["email", "user_1@example.com"], ["LIMIT", 1]] User Exists? (1.7ms) SELECT 1 AS one FROM "users" WHERE "users"."password" = $1 LIMIT $2 [["password", "aaaa"], ["LIMIT", 1]] TRANSACTION (0.3ms) ROLLBACK ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column users.password does not exist LINE 1: SELECT 1 AS one FROM "users" WHERE "users"."password" = $1 L... ^ from /usr/local/bundle/gems/activerecord-7.0.4.2/lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `exec_params' Caused by PG::UndefinedColumn: ERROR: column users.password does not exist LINE 1: SELECT 1 AS one FROM "users" WHERE "users"."password" = $1 L... ^ from /usr/local/bundle/gems/activerecord-7.0.4.2/lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `exec_params'
該当のソースコード
・user.rb
authenticates_with_sorcery! validates :name, presence: true, length: {maximum: 20}, uniqueness: true validates :email, presence: true, length: {maximum: 100}, uniqueness: true validates :password, length: { minimum: 3 }, confirmation: true, uniqueness: true end
・xxxxxxxxx_sorcery_core.rb
class SorceryCore < ActiveRecord::Migration[7.0] def change create_table :users do |t| t.string :name, null: false, unique: true t.string :email, null: false, index: { unique: true } t.string :crypted_password t.string :salt t.timestamps null: false end end end
・shema.rb
create_table "users", force: :cascade do |t| t.string "name", null: false t.string "email", null: false t.string "crypted_password" t.string "salt" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["email"], name: "index_users_on_email", unique: true end``` ### 試したこと passwordカラムがない?ということで、一応コンソール上でカラムを確認してみましたが、問題ないと思います。 ```ここに言語を入力 [1] pry(main)> User.column_names => ["id", "name", "email", "crypted_password", "salt", "created_at", "updated_at"]
volumeを削除してDB再構築をしましたが、マイグレーションファイルもupされていたり、shema.rbと相違ないため、誤って編集されていることもないと思うのですが、原因がわかりません。
ご教授いただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。