Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
@shunta9922
Revisions
Report this question
Subscribe question
Help us understand the problem. What is going on with this question?
Q&A

columnの追加と削除ができない

解決したいこと

columnの追加と削除ができないです

現在progateでtwitterのクローンを作成している初心者です。
formに入力したパスワードをハッシュ化させ、password_digest_columnに保存する工程でNameErrorが発生しました。
原因を調べると、usersテーブルのpassword_digest_columnがpasswor_columnのままでした。
migrationファイルにadd_columnとremove_columnを書いて、db:migrateを行ったのですが変化がありません。
この場合、もう一度マイグレーションファイル作り直すべきかまたは、schema.rbに直接書き込むべきでしょうか?ご教授よろしくお願いいたします。

発生している問題・エラー

NameError in UserController#login
undefined local variable or method `password_digest' for #<User:0x00000000094ea8c8> Did you mean? password

  def login
      @user=User.find_by(email: params[:email])
      if @user && @user.authenticate(params[:password])
        session[:user_id]=@user.id
        flash[:notice]="ログインしました"
        redirect_to("/movie/index")

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

Change_Users_Columns.rb
class ChangeUsersColumns < ActiveRecord::Migration[5.2]
  def change
    add_column :users, :password_digest,:string
    remove_column :users,:password, :string
  end
end

schema.rb
  create_table "users", force: :cascade do |t|
    t.string "name"
    t.string "email"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "image_name"
    t.string "password"
  end
0
1
Answer

migrationファイル名は、 Change_Users_Columns.rb ですか??

railsは、デフォルトでは、migrationファイル名のタイムスタンプをみて、
migrationを実行するかどうかを確認するので、タイムスタンプが入ってないと何も実行されないかと思います。

↓を参考に rails generate migration コマンドでファイルを作ってみてはいかがでしょうか??

0
回答ありがとうございます
一つ質問があるのですが、
もう一度新しくChange_Users_Columns.rb を作成する際、db:rollbackを行って元のChange_Users_Columns.rb を削除したほうがいいでしょうか?
このファイルを作って、db:migrateしたときに、変化がなかったのであれば、dbに対して何も処理は行われていないため、db:rollbackはする必要ないと思います。

念のため、schema.rbをみてみてください。 `passwor_column` のままであれば、rollbackの必要はないです。
View the remaining 1 comments.
Help us understand the problem. What is going on with this answer?
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login