【105日目】【1日20分のRailsチュートリアル】【第9章】すべてのユーザーを表示する
今日は「9.3 すべてのユーザーを表示する」から。
9.3 すべてのユーザーを表示する
この節では、いよいよ最後から2番目のユーザーアクションであるindexアクションを追加しましょう。このアクションは、すべてのユーザーを一覧表示します。
すべてのユーザーはどのアカウントからも見れるアプリケーションなんだっけ。Twitterみたいなやつ作るんだよね、確か。
9.3.1 ユーザーインデックス
ユーザーのshowページについては、今後も (ログインしているかどうかに関わらず) サイトを訪れたすべてのユーザーから見えるようにしておきますが、
ユーザーのindexページはログインしたユーザーにしか見せないようにし、未登録のユーザーがデフォルトで表示できるページを制限します。
ほぅほぅ。
indexページを不正なアクセスから守るために、まずはindexアクションが正しくリダイレクトするか検証するテストを書いてみます (リスト9.31)。
indexアクションに関するテストを追加。
test/controllers/users_controller_test.rb
test "should redirect index when not logged in" do get :index assert_redirected_to login_url end
次に、beforeフィルターのlogged_in_userにindexアクションを追加して、このアクションを保護します (リスト9.32)。
Userコントローラーにindexアクションを追加して、brforeフィルターにもindexアクションを追加。
app/controllers/users_controller.rb
class UsersController < ApplicationController before_action :logged_in_user, only: [:index, :edit, :update] : def index end :
ここでテスト実行すると通りました。
idenxアクションのリダイレクト処理書いてないのにー、と一瞬思ったけど、
logged_in_user
でリダイレクト処理入れてましたね…。そういうことか。
$ bundle exec rake test 36 tests, 85 assertions, 0 failures, 0 errors, 0 skips
途中だけど今日はここまで。
今日の学習時間は【16分】。
次は「9.3.1 ユーザーインデックス」のindexビューを追加するところから。