Progeteにて、Ruby on Rails5(学習コースⅪ) にて、gem を使ってみよう! ということで'bcrypt'についての解説を見ているのですが、
ここでのgemの扱いのスライド説明がよくわからないので教えて頂きたいです。
<gem bcryptをインストールし、bcryptの機能を使ってパスワードをハッシュ化するのがコース目標>
□スライドの説明
bcryptをインストールすると、has_secure_passwordというメソッドが使えるようになります。図のようにパスワードを扱うUserモデルにhas_secure_passwordを追加します。こうすることで、ユーザーを保存する際に自動的にパスワードをハッシュ化してくれます。
→演習においてはhas_secure_password メソッドを追加してください と言われ、
class User < ApplicationRecord def has_secure_password #ここ! end validates :name, {presence: true} validates :email, {presence: true, uniqueness: true} def posts return Post.where(user_id: self.id) end end
と追加した。なお答えを見るとdef とendは不要だった。
(正解判定にはなった)
###質問1
このdefもendも書かない has_secure_password とだけ記述すると、何が起きるのですか?
スライドを検索しましたが、このようにメソッド名だけ置いてある説明を見つけられませんでした。
基礎かもしれませんが教えて下さい。
###質問2
bcryptの機能説明では 各所で記述している[password]というカラムにデータを保存すると、[password_digest]にハッシュ化されて保存される。
とスライドに記載してあるのですが、
コードを組む過程で、カラムを自分で追加する際、[password]ではなく[pass]などと記述してそれをもとにコードを組んでいた場合、使えないということでしょうか。
###質問3
(質問2の回答が「[pass]でもこねこねすれば使えるよ」、ではなかった場合の話)
質問2は、bcryptでのお話ですが、bcrypt以外にも沢山のgemがあると思います。
この沢山のgemが使用している、特定のワードを回避しながらコードを組まないといけないのでしょうか?
[編集追記]
gemの機能を使いたい場合は予め定められたワードを使用して、
gemの機能を使わない場合は、インストール済み又はインストール予定のgemのワードを回避しながら
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/23 04:19