railsチュートリアルを参考にして作成していきます。
現在ログインしているユーザーの情報(nickname, user name, フォロー数)を確認できるページを作成します。新たにコントローラを作成します。
Sayo-MacBook-Pro:emoji_diary SAYO$ bundle exec rails generate controller Profiles
Running via Spring preloader in process 75976
create app/controllers/profiles_controller.rb
invoke erb
create app/views/profiles
ユーザー情報を表示するページになるshowアクションを追加します。
class ProfilesController < ApplicationController
def show
end
end
ルーティングも追加します。
resource :profiles, only: [:show]
ユーザープロフィール用のURLはidを参照しないことが望ましいため、単数系resource
を使用します。他のユーザーにこのページを表示するつもりはないので、このルーティングで大丈夫です。
ビューファイルを作成します。
Sayo-MacBook-Pro:emoji_diary SAYO$ touch app/views/profiles/show.html.erb
<% content_for(:title, t('.title')) %>
<div class="container pt-3">
<div class="row">
<div class="col-md-10 offset-md-1">
<h1 class="float-left mb-5">profile</h1>
<%= link_to '編集', '#', class: 'btn btn-success float-right' %>
<table class="table">
<tr>
<th scope="row">nickname</th>
<td><%= current_user.nickname %></td>
</tr>
<tr>
<th scope="row">user name</th>
<td><%= current_user.name %></td>
</tr>
</table>
</div>
</div>
</div>
プロフィールページに遷移できるようにヘッダーにリンクを追加します。
<li class='nav-item'>
<%= link_to '💐', profiles_path %>
</li>
あとはフォローとフォロワーの情報をこのページに追加したいです。フォローしている人、フォロワーの数をまずは表示させます。profiles/show.html.erb
に下記を追加します。
<tr>
<th scope="row">following</th>
<td><%= current_user.followings.count %></td>
</tr>
<tr>
<th scope="row">followers</th>
<td><%= current_user.followers.count %></td>
</tr>