0
0

More than 3 years have passed since last update.

Rails gem bcryptのメソッドが使えない

Last updated at Posted at 2021-03-25

はじめに

初めまして。私はプログラミングを勉強してまだ間もない駆け出しのエンジニアです。Qiitaへの投稿も含めまだまだ勉強中です。そしてこれがQiitaへの初投稿となりますのでお手柔らかにお願いします。
主に初心者の方向け、また自分用のメモとしてこれから発信していきます。

開発環境

Rails 6.1.3 ローカル環境でProgateのTweet_Appを作成中

概要

今回はタイトルにもある通り、Gemfileへbcryptを追加したにも関わらず、has_secure_passwordやauthenticateといったメソッドが使えない!と言う状況に出くわしたのでそちらを共有していきます。

まず、
Gemfileに gem 'bcrypt' を追加。
その後ターミナルで bundle install を実行。

パスワードのハッシュ化を実装させていこうとhas_secure_passwordメソッドを記述

models/user.rb
class User < ApplicationRecord  
    has_secure_password

確認のため作成中のサイトを見たところ、そのメソッドは知らないよとのエラーが。
使えるはずのメソッドが使えずかなり焦った。

原因は、bcryptのバージョン?・・・いやバージョンは指定せず記述したので最新のものが導入されているはず。
じゃあ一体なんでだろうと小一時間悩んだ挙句ようやく原因を突き止めた。

rails s の再起動

サーバーを立ち上げ直すことでエラーは解消された。
長いこと悩んだ問題の原因はなんとも簡単なことだった。
以前、テーブルのcreated_atカラムを日本時間にしたいなと思い立ち、Qiitaなどを参考にしたときにGemfileの編集をしたことがあった。その時参考にした記事に「サーバーを再起動させて変更完了です。」の一文があったことを思い出した。

まとめ

自分と同じようなことで悩んでいた方がもしいたら、無駄な時間を過ごすことがなくなればいいなと思います。
rails s の再起動はProgateでGemfileのレッスンで書かれてなかったぞ・・・
それとも正規の解決法が他にあるのか?まあ解決できればそれでいいか!

またネタがあったら投稿したいと思います。

以上

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