2020年5月5日火曜日

簡易SNSを作ってみよう(7)

先生ユーザーの作成
user000を先生(role == 'teacher')ユーザーとした.db/seeds.rbrole:を設定している箇所を参照のこと.三項演算子を用いて,idが0番の場合のみ,先生ユーザーとしている.なお,他のユーザーを’teacher’にしたい場合は,以下の手順でロールを変更できる.

【手順】
bin/rails c
irb(main):001:0> User.find_by(id: X).update(role: 'teacher')
irb(main):002:0> exit
先生ユーザー用マイページの作成
先生ユーザーでログインした場合,生徒一覧が表示されるようにする.

【手順】
vi app/controllers/users_controller.rb
(以下を追記)
class UsersController < ApplicationController
  before_action :authenticate_user!

  def show
    @user = User.find(params[:id])
    @students = User.where(role: 'student') if @user.role == 'teacher'
  end
end

vi app/views/users/show.html.erb
(以下を追記)
<h1>MyPage for <%= @user.fullname %></h1>

<% if @students != nil %>
  <ul>
   <% @students.each {|st| %>
    <li><%= link_to st.fullname, user_path(st.id) %></li>
   <% } %>
  </ul>
<% end %>

確認

サーバを起動し,teacher(user000), student(user001)それぞれのロールでマイページが異なることを確認する.

0 件のコメント:

コメントを投稿