[前][次][番号順一覧][スレッド一覧]

rails:13

From: Kazuhiro Yoshida <moriq@m...>
Date: Fri, 28 Jan 2005 00:18:42 +0900
Subject: [rails:13] Session (Re: 参加します)

もりきゅうです。

hoti <hoti_jp@y...> wrote:
> Railsを使ってみました。CGI:Sessionを使っているので、
> 文字列しかセットできないのかな? と悩み中です(^^

Railsの @session はデフォルトで PStore を使うので
ほぼ何でも入ります。

実装的にはこの辺り:
lib/action_controller/cgi_ext/cgi_ext.rb:
  def session(parameters = nil)
    parameters = {} if parameters.nil?
    parameters['database_manager'] = CGI::Session::PStore
    CGI::Session.new(self, parameters)
  end

なので、ログイン機能をこんな感じに書いてみました
(どこかに載ってたのをぱくった):

models/shop.rb:
class Shop < ActiveRecord::Base
  def self.authenticate(name, password)
    find_first([ "name = ? and password = ?", name, password ])
  end
end

controllers/login_controller.rb:
class LoginController < ApplicationController
  model :shop

  def authenticate
    if @session["shop"] = Shop.authenticate(@params["shop"]["name"], @params["shop"]["password"])
      redirect_to :controller => "customer", :action => "find"
    else
      flash["alert"] = "Login failed!"
      redirect_to :action => "index"
    end
  end
...

ただし、これだと一時的なセッションファイルの中に password が
書かれちゃうのが嫌な感じ。^^;

----
Kazuhiro Yoshida  moriq@m...

--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

        12 2005-01-27 16:05 [hoti_jp@y...        ] 参加します                              
->      13 2005-01-27 16:18 ┗[moriq@m...          ] Session (Re: 参加します)              
        16 2005-01-27 16:26  ┣[moriq@m...          ]                                     
        19 2005-01-27 17:00  ┃┗[inoue@f...          ]                                   
        18 2005-01-27 16:35  ┗[hoti_jp@y...        ]