Edited at

secure passwordについて


概要

初めてのRailアプリ開発で気になるところ、つまずくところをピックアップ


目的

userテーブルにパスワードをカラムを追加したい


どうやる


user.rb

class User < ActiveRecord::Base

has_secure_password
   #追加
end


gemfile

gem 'bcrypt', '~>3.1.7'

#gemfileの追加

bundle install

rails g migration add_password_digest_to_users

#ユーザーテーブルにパスワードカラムの追加


20+++++++_add_password_digest_to_users.rb

class AddPasswordDigestToUsers < ActiveRecord::Migration

def change
add_column :users, :password_digest, :string
end
end

 rake db:migrate

あらかじめ作成してあるユーザー情報にpasswordを追加し、確認

rails c

user = User.last

id: 1,

username: "ryoji_tamaki",
email: "◯◯◯.◯◯@gmail.com",
created_at: Wed, 00 Nov 2018 00:00:00 UTC +00:00,
updated_at: Wed, 00 Nov 2018 00:00:00 UTC +00:00,
password_digest: nil>

#どのように出れば、パスワードのカラム追加に成功しているのがわかる

 user.password = "firstaddpassword"

user.save

 (0.9ms)  commit transaction

=> true

#と出れば成功

 user.authenticate("firstaddpassword")

=> #<User:0x007f9e79bf7998
id: 1,
username: "ryoji_tamaki",
email: "◯◯◯.◯◯@gmail.com",
created_at: Wed, 07 Nov 2018 00:00:00 UTC +00:00,
updated_at: Thu, 08 Nov 2018 00:00:00 UTC +00:00,
password_digest: "xxxxxxxxxxxxxxxx">