AR삽질러

Rails 一日一つメソッド (Day24) sessionメソッド 본문

Ruby/RubyOnRails-日本語

Rails 一日一つメソッド (Day24) sessionメソッド

아랑팡팡 2024. 1. 31. 19:16
728x90

 

Rails 一日一つメソッド (Day24) sessionメソッド

 

sessionとは?

 - WebServerとWebBrowser間で継続的なやり取りをするための仕組みで、Sessionを使う事でUserがWebサイト上で行うアクションや操作などの情報を、異なるパージやリクエスト間でも維持する事ができるようになる。

 

sessionの基本

 1. Stateless維持

  - Webは基本的に状態のない(stateless)環境で、HTTPリクエストは独立的で以前Requestのデータを "保存"しない。sessionを使えば、ServerがUserの情報をRequest間で維持できるようになる。

 

 2. Cookie

  - sessionはcookieで実装され、cookieはUserのブラウザに保存される小さなデータで、ServerとBrowser間の情報交換に使われる。

  - Railsでは、Session Cookieは暗号化される。


 

RailsのSession

 - sessionとはRailsでセッション管理を行うためのメソッドで、sessionはハッシュのようなキーと値のペアでデータを保存できる。

 

値の設定

 - sessionはハッシュと同様の形式で利用でくる

session[キー] = "値"
session[:user_id] = 1

 

値の参照

session[キー]
session[:user_id]

 

sessionの破棄

 - sessionを明視的に削除するには nilを設定する。

session[キー] = nil
session[キー].clear

session[:user_id] = nil
session[:user_id].clear

 

キーを設定せず全てのsessionを破棄する = reset_sessionメソッド

reset_session

Login画面

# config/routes.rb
Rails.application.routes.draw do
	get 'login', to: 'sessions#new'
end

 

# Controller
class SessionController < ApplicationController
	def new
    end
end

 

# View
<%= form_with(url: login_path, method: post) do |form| %>
	<div>
    	<%= form.label :email %>
        <%= form.email_field :email %>
    </div>
    
    <div>
    	<%= form.label :password %>
        <%= form.password_field :password %>
    </div>
    
    <div>
    	<%= form.submit 'ログイン' %>
    </div>
<% end %>
728x90
반응형
LIST