RailsTutorial.orgエクササイズ9.6.2:[ログインしています]チェックボックスがオンの場合はクッキーでサインインしようとしています。セッションでサインインします。マイケル・ハートルのコードから始めて、私は次のように変更加えました:RailsTutorial.orgエクササイズ9.6.2 - ユーザーサインインのためにクッキーの代わりにセッションを使用
私はビューでサインインフォームにこのコードを追加しましたが>セッション> new.html.erb:
<div class="field">
<%= f.check_box :stay_signed_in %> Stay signed in?
</div>
私は」セッションコントローラにこの1行を追加しまし:
def create
session[:staysignedin] = (params[:session][:stay_signed_in] == "1") ? true : false
...
end
そして私は、セッションヘルパーで以下の変更作られました:
def sign_in(user)
if session[:staysignedin]
cookies.permanent.signed[:remember_token] = [user.id, user.salt]
else
session[:userid] = user.id
end
self.current_user = user
end
def sign_out
if session[:staysignedin]
cookies.delete(:remember_token)
else
session[:userid] = nil
session[:staysignedin] = nil
end
self.current_user = nil
end
def user_from_remember_token
session[:staysignedin] ? User.authenticate_with_salt(*remember_token) : User.find_by_id(session[:userid])
end
を210
問題は、常にチェックボックスがチェックされていないかのように動作し、チェックボックスがオンになっていても、常にクッキーではなくセッションを使用してサインインしていることです。
ペーストリンクだけでなく、 – vinculis