##前回やったこと
【勉強メモ】deviseを実装させる①【挫折しない!】
https://qiita.com/takatoshi0905/items/d39832df81f3c6550b42
・deviseのgemをインストールした。
・deviseのモデルをつくった
・ログイン画面になるようにルート設定した。
・gemとは「宝石」という意味だということを理解した!
##今回やること
新規登録、ログイン、ログアウト、プロフィール変更の画面を作る
##ログイン状態の有無を確認
さて、viewファイルにログイン状態を記述する必要があるわけだが
<モデル名>_signed_in?
で、「<モデル名>でログインしているの?」っていうことを意味する。
今回はモデル名をuserで作成したから、
user_signed_in?
になる。
だから、viewファイルのruby記述は
if user_signed_in? #ログインしてる?って意味
<ログインしている時のHTML>
else
<ログインしていない時のHTML>
end
っていうことになるわけか。
##2、実際にviewに記述してみる。
<% if user_signed_in? %>
このメールアドレスで君はログインしているんだね→<%= current_user.email %>
<%= link_to "ログアウト", destroy_user_session_path, method: :delete %>
<%= link_to 'プロフィール変更', edit_user_registration_path %>
<% else %>
<%= link_to "新規登録", new_user_registration_path %> |
<%= link_to "ログイン", new_user_session_path %>
<% end %>
でやってみた。
app/views/layouts/application.html.erb
に記述するのは、すべての画面の中に、共通して表示させる内容だからだね。
あと、上の記述のなかでの
current_user
がキーポイントになりそうだ。読み方は「カレントユーザー」で合ってるのかしら?
current_user.email
で、current_userのemailを表記するという意味なのだろう。
っていうことは、current_user.password
と記述したら、ログインユーザーのパスワードが表示されてしまうということか???
あとでこっそり試してみることにするwww
##3.実際の画面はこんなの
【新規登録画面】
【ログイン画面】
【プロフィール変更画面】
##5.コントローラもビューもつくった覚えないんだけど...
そういえば、ここまででview画面とかcontrollerの設定とか一切いじっていない。だけど、普通にログイン画面になったり新規登録画面になったりしている。プロフィール変更のビュー&コントローラーなんかいつの間につくったんだ?
いじったとすれば app/views/layouts/application.html.erb
にちょこちょこっとリンクを貼り付けただけだ。
もう一度、app/views/layouts/application.html.erb
をみてみると…
<%= link_to "ログアウト", destroy_user_session_path, method: :delete %>
<%= link_to 'プロフィール変更', edit_user_registration_path %>
<%= link_to "新規登録", new_user_registration_path %> |
<%= link_to "ログイン", new_user_session_path %>
destroy_user_session_path, method: :delete
とか、edit_user_registration_path
ってところにヒントがありそうだ。
あ、分かった。
そうか、deviseというのは、これらを上記の記述をするだけでプロフ変更画面とかログアウトメソッド的なやつとかを行ってくれるということか。
これは便利。楽だね。gemが宝石っていうことの意味がなんとなく分かった。
##4.でも、英語ばかりでキモいんですけど…
deviseの素晴らしさ、宝石と呼ばれる所以は理解した。すごいね、devise。
だけどさ、英語ばっかりで正直キモい。英語圏の人がつくった宝石だからなのだろうけど、これはキモい。自分も含めて英語がサッパリの日本人が実際にこのwebページをみたら怪しさしかないよね。絶対に個人情報を抜かれると思うよ。警戒心しかない。
これ、日本語表記に、さらに自分なりの文言でプロフィール変更ページとかつくれないものかね? どこかのファイルで書き換えられないのかしらね?。