首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >帮助创作

帮助创作
EN

Stack Overflow用户
提问于 2009-11-09 22:16:41
回答 1查看 155关注 0票数 0

我刚刚完成了我的应用程序的设置,使我的应用程序能够正确地按照运行

在开始之前,我已经创建了一个具有基本CRUD功能的产品目录。

现在,我希望只有当用户被alread登录时,产品目录才可访问。因此,基本上,如果用户没有登录,它应该转到登录页面。如果他是,那么本地主机:3000应该带他去产品目录.我真的很困惑.我甚至不知道该怎么做.

相反,现在,登录并进入localhost:3000将我重定向到http://localhost:3000/account

请帮帮忙。

我还注意到,如果我在登录时访问我的产品目录,我会在页面顶部得到这条消息。

“必须注销才能访问此页面”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-10 13:04:11

纳乔,我建议你看http://railscasts.com/episodes/160-authlogic

它应该回答你所有的问题,还有更多。

从我头顶上..。

如果您还没有设置您的路线,请开始:

代码语言:javascript
运行
复制
  map.login 'login', :controller => 'user_sessions', :action => 'new'

map.logout‘注销’,:控制器=> 'user_sessions',:操作=> 'destroy‘

接下来,在应用程序控制器中执行以下操作:

代码语言:javascript
运行
复制
  before_filter :authenticate, :except => [:login, :logout, :destroy, :index, :new]

  private #--------------------

  def authenticate
    unless current_user
      flash[:notice] = "You must be loged in first"
      redirect_to(login_url)
      return false
    end
  end

  def current_user_session
    return @current_user_session if defined?(@current_user_session)
    @current_user_session = UserSession.find
  end

  def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.record
  end

这将使你具备解决上述问题的能力。如果没有人登录,他们将被重定向到登录页面。此外,要注销,只需指向logout_url (localhost:3000/ logout )

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1704297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档