2011-04-14 88 views
0

我有这个admin_controllerRuby on Rails:在会话中保存登录状态。

def login 
    if request.post? 
     if params[:full_name] == "adm" && params[:password] == "123" 
     data = { :success => 'true', :msg => "Welcome, #{params[:full_name]}"} 
     #redirect_to :action => :welcome 
     else 
     data = { :failure => 'true', :msg => "Username or Password wrong !"} 
     end 
     render :text => data.to_json, :layout => false 
    end 
    end 

    def welcome  
    end 

和我有login.js ......一切工作!

如何建立sessions

我不明白我的方式。请帮帮我。

我在页面上有一些链接,当我登录并点击链接时,我会得到另一页(New post),非常棒!但是,如果我回来,my application要我再次输入登录&密码。如果我进入我的链接网址(New post)我没有问题那里,但它是错误的,必须有文字是这样的:“Log in first

+0

它是什么? 'return false' – fl00r 2011-04-21 12:38:10

+0

嗯,你在做什么? – Will 2011-04-21 14:33:36

回答

1

简短的回答:

session[:user_id] = id_of_user_that_just_signed_in 

application_controller.rb

class ApplicationController < ActionController::Base 
    protect_from_forgery 

    helper_method :current_user 

    private 
    def current_user 
     @current_user ||= User.find_by_id(session[:user_id]) if session[:user_id] 
    end 
end 

龙答:我写了一个教程使用Omniauth和一个部分(“会话存储”),你看到会话处理和写入适当的助手:http://www.communityguides.eu/articles/16(与在Github上完整的代码)