rails tutorialメモ
8.1.1 Sessionコントローラ
http://railstutorial.jp/chapters/log_in_log_out?version=4.2#sec-sessions_controllert
ログインフォーム
newアクションで処理 createアクションにPOSTリクエストを送信→ログイン destroyアクションにDELETEリクエストを送信→ログアウト $ rails generate controller Sessions new newアクション生成で対応するviewも生成される。 createやdestroyには対応するビューが不要なのでnewだけ指定している。
HTTPリクエスト | URL | 名前付きルート | アクション | 用途 |
---|---|---|---|---|
GET | /login | login_path | sessions#new | 新しいセッションのページ(ログイン) |
POST | /login | login_path | sessions#create | 新しいセッションの作成(ログイン) |
DELETE | /logout | logout_path | sessions#destroy | セッションの削除(ログアウト) |
以下で全ルーティングのリストが表示される。
$ rake routes
ActiveRecord操作
user = User.first user.email = 'aaaaa@example.com' user.save! #更新失敗時に、user.saveはfalseを返し、 #user.save!は例外を発生させる。
8.2.1 log_inメソッド
sessionメソッド 一時的なcookies
cookiesメソッド 永続的なcookies
「||=」とは何か?
以下の要領で覚える。
@fooがnil(false)ならば"bar"が代入される。
x = x + 1 => x += 1 x = x * 3 => x *= 3 x = x - 5 => x -= 5 @foo = @foo || "bar" => @foo ||= "bar"
認証機能の完成に必要なのは、一口に言えばログインステータスとユーザーIDに基いてページへのアクセスを制限することだけです。