ユーザー管理をする②:設定一覧

ユーザー管理をする②

Header10

0 : この章の目的

 「ユーザー管理をする②」の設定一覧の確認をする


1 : 設定一覧

ユーザー管理をする②」では、「users」ページの設定を行った。

ここで変更した内容をまとめる
ページ設定をするために、

 ターミナル
 Windowsをご利用でしたら、「コマンドプロンプト」をご利用下さい。

1 ralis g controller users

この入力で作成された
  • ページ設定のためのフォルダ「app > views > users
  • データ操作をするファイル「app > controllers > users_controller.rb


3. どのページを使うかの設定ファイル「config > route.rb

の3つを設定してページを作る。
 7つのページの設定(route.rb)は、

 route.rb

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 61 62 Rails.application.routes.draw do devise_for :users resources :posts , :only => [:show, :index, :new, :create, :edit, :update, :destroy] resources :welcome, :only => [:index] root "welcome#index" resources :users, :only => [:show, :index, :edit, :update] # The priority is based upon order of creation: first created -> highest priority. # See how all your routes lay out with "rake routes". # You can have the root of your site routed with "root" # root 'welcome#index' # Example of regular route: # get 'products/:id' => 'catalog#view' # 省略 end

 データ操作の設定(controllerファイル)は、

 users_controller.rb

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class UsersController < ApplicationController before_action :authenticate_user!, :only => [:show, :index, :edit, :update] def show @user = User.find(params[:id]) end def index @users = User.all end def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) @user.update(params.require(:user).permit(:first_name, :family_name, :self_introduction)) end end

 ページの設定(viewsフォルダ)は、
  • show.html.erb
  • index.html.erb
  • edit.html.erb
  • update.html.erb
の4つの設定ファイルに表示を設定する。
 show.html.erb
1 2 3 4 5 6 7 8 <h1>ユーザー情報</h1> <hr> <p>名前:<%= @user.family_name %><%= @user.first_name %>さん</p> <p>自己紹介:<%= @user.self_introduction %></p> <hr> <p><a href="/posts" class="btn btn-info">トップに戻る</a></p> <p><a href="/users" class="btn btn-primary">ユーザー一覧に戻る</a></p> <p><a href="/users/<%= @user.id %>/edit" class="btn btn-success">ユーザー情報を編集する</a>

 index.html.erb
1 2 3 4 5 6 7 <h1>ユーザー一覧</h1> <hr> <% @users.each do |u| %> <p><a href="/users/<%= u.id %>"><%= u.family_name %><%= u.first_name %>さん</a></p> <hr> <% end %> <a href="/posts" class="btn btn-info">トップに戻る</a>

 edit.html.erb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <h1>ユーザー情報を編集する</h1> <hr> <%= form_for @user do |f| %> <p>名字</p> <%= f.text_field :family_name, :class => "form-control my-form" %> <p>名前</p> <%= f.text_field :first_name, :class => "form-control my-form" %> <p>自己紹介</p> <%= f.text_area :self_introduction, :class => "form-control my-form" %> <hr> <%= f.submit "登録する", :class => "btn btn-primary" %> <% end %> <hr> <a href="/users/<%= @user.id %>" class="btn btn-info">ユーザー情報に戻る</a>

 update.html.erb
1 2 3 4 5 6 7 8 <h1>ユーザー情報を変更しました。</h1> <hr> <p>名前:<%= @user.family_name %><%= @user.first_name %>さん</p> <p>自己紹介:<%= @user.self_introduction %></p> <hr> <p><a href="/users/<%= @user.id %>" class="btn btn-primary">ユーザー情報に戻る</a></p> <p><a href="/users/<%= @user.id %>/edit" class="btn btn-success">ユーザー情報の編集に戻る</a></p> <p><a href="/posts" class="btn btn-info">トップに戻る</a></p>

 ユーザーがログインしているかでnavigation-barの表示の方法を変更するために、「application.html.erb」を設定する

 application.html.erb

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 <!DOCTYPE html> <html> <head> <title>Myapp</title> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> <%= csrf_meta_tags %> </head> <body> <nav id="mainNav" class="navbar navbar-default navbar-fixed-top"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a href="/posts" class="navbar-brand">myapp</a> </div> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> <% if user_signed_in? %> <li><a href="/users">ユーザー一覧</a></li> <li><a href="/users/<%= current_user.id %>">ユーザー情報</a></li> <li><a href="/posts/new">新しく投稿する</a></li> <li><%= link_to "ログアウト", destroy_user_session_path, :method => :delete %></li> <% else %> <li><a href="/users/sign_up">登録する</a></li> <li><a href="/users/sign_in">ログインする</a></li> <% end %> </ul> </div> </div> </nav> <div class="container main-page"> <% if notice %> <br> <p class="alert alert-success"><%= notice %></p> <% end %> <% if alert %> <br> <p class="alert alert-danger"><%= alert %></p> <% end %> <%= yield %> </div> </body> </html>

になる