LoginSignup
0
0

【学習】Ruby on Rails チュートリアル 第7版 - 第8章 基本的なログイン機構

Last updated at Posted at 2023-05-23

5/23 8:35開始

・ログイン

cookies:
ユーザーのブラウザに保存される小さなテキストデータ。あるページから別のページに移動した時にも破棄されないので、ここにユーザーIDなどの情報を保存できる。

session(Railsのメソッド)を使って一時セッションを作成することができる。
Sessionリソースではcookiesを保存場所として使う。

セッション機能を作成する準備として...
Sessionコントローラ、ログイン用のフォーム、両者に関連するコントローラのアクションを作成する。

8.1.1まで終了

5/23 9:10終了

5/24 8:40 開始

8.1.3まで終了

5/24 9:10

5/25 8:30 開始

・フラッシュメッセージが消えない問題

class SessionsController < ApplicationController
    .
    .
    .
  def create
    .
    .
    .
    else
        #ログイン失敗時の処理
      flash[:danger] = 'Invalid email/password combination' # フラッシュメッセージが消えない
      render 'new', status: :unprocessable_entity
    end
  end
    .
    .
    .
end

別のページに行ってもフラッシュが残り続ける。

flashをflash.nowに置き換えることで、
レンダリングが終わっているページで特別にフラッシュメッセージを表示することができる。

・単純なログイン

↓ユーザーのブラウザ内の一時cookiesに暗号化済みのユーザーIDが自動で作成される。
(Railsで事前定義済みのsessionメソッド)

session[:user_id] = user.id

5/25 9:10 終了

5/26 8:30 開始

・「||=」

「||=」(or equals)は、Rubyで広く使われているイディオム。
||式を左から右に評価し、演算子の左の値が最初にtrueになった時点で処理を終了する。

  >> @foo
  => nil
  >> !!@foo
  => false 
  >> !!@foo = @foo
  => false
  >> @foo = @foo || "bar"
  => "bar"
  >> !!@foo
  => true
  >> !!@foo = @foo
  => true
  >> @foo = @foo || "baz"
  => "bar"

↓のように●という演算子があるときは、「x = x ● y」と「x ●= y」の動作は同じ。

 x    =   x   +   1      ->     x     +=   1

||= も同様に...

@foo = @foo || "bar" -> @foo ||= "bar"

8.2.2まで終了

5/26 9:00終了

5/29 8:30 開始

・RailsプロジェクトにJavaScriptを導入
ImportmapとTurboとStimulusをインストールする

Gemfileにそれぞれを記述。 xxはバージョン

gem "importmap-rails", "xx.xx.xx"
gem "turbo-rails",     "xx.xx.xx"
gem "stimulus-rails",  "xx.xx.xx"

Importmap自身をインストールしてからTurboとStimulusをインストール

$ rails importmap:install turbo:install stimulus:install

8.2.4まで終了

5/29 9:00終了

5/30 8:30 開始

・モバイル向けスタイリング
*metaタグ ビューポート(viewport)
開発者がPCモードとモバイルモードを切り替えられるようになる。

*トグル:ある同じ操作を繰り返すことで、機能や状態のON/OFFを切り替える仕組みのこと

5/31 7:40 開始

・safe navigation演算子(または“ぼっち演算子”)

  obj && obj.methodのようなパターンを、
  obj&.methodのように凝縮した形で書ける。

8.2まで終了

5/31 8:30 終了

6/1 8:30 開始

・ログアウト

*status: :see_other
HTTPステータス
RailsでTurboを使うときは、このように303 See Otherステータスを指定することで、
DELETEリクエスト後のリダイレクトが正しく振る舞うようにする必要がある。

第8章 終了!

6/1 8:50 終了

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0