#はじめに
deviseでは「現在ログインしているユーザーの情報を取得」する事ができます。
例えば、「名前」「生年月日」「住所」「電話番号」など、対象のユーザーが既に登録した情報を表示する方法を紹介します。
###目次
1.current_userメソッド
2.遷移先のview
#開発環境
ruby 2.6.5
rails 6.0.0
devise 4.7.3
##前提
devise導入済み
model生成済み
ユーザー登録済みでデータを既に持ってる
view作成済み
#実装
それでは実装して行きます。
####1.current_userメソッド
deviseを導入しているため使用できるメソッドで、current_user(現在ログインしているユーザー)の情報が取得できます。
<%= link_to current_user.nickname, edit_user_registration_path(current_user), class: "user-name" %>
#↑ここ# #↑ここ#
例えば、マイページでユーザー情報を編集したい時を想定します。link_toメソッドでcurrent_user.nameと記述すると、今ログインしてるユーザーのnameカラムに保存されてる名前が表示れます。
また、url指定したpathの後ろにcurrent_userをつける事で、遷移先にもそのユーザー情報を表示させる事ができます。
※注意:urlはreils routesでコントローラー#アクションを探しください。
####2.遷移先のview
遷移先のviewページでは、既に登録されてるユーザーの情報を表示させます。
<%= form_with model: @user, url: edit_addresses_path, class: 'registration-main', local: true, method: :get do |f| %>
<%= f.text_area :name, class:"input-default", id:"name", placeholder:"例) 太郎", maxlength:"40" %>
<% end %>
今回ユーザー情報を編集するページを作りたいのでapp> views> devise >registrationsにあるedit.html.erbのファイルを編集します。
form_withメソッドを使います。
devise内部で@userが定義されていて、既にデータが代入されてるので「model: @user」とします。
「do |f|」とする事で「end」までの「f.text_area :カラム名(今回はname)」に現在のユーザー情報が表示されます。
※注意:deviseのviewをよび出してる場合は既に生成さてるファイルを使うと便利です。
参考記事
https://qiita.com/AKI3/items/bf0d5b57029abfc8154c
#まとめ
以上、現在ログインしているユーザー情報の取得方法でした。
current_userメソッドを使う事がポイントです。
###最後に
私はプログラミング初学者ですが、同じ様に悩んでる方々の助けになればと思い、記事を投稿しております。
それでは、また次回お会いしましょう〜