我刚刚完成了我的应用程序的设置,使我的应用程序能够正确地按照这运行
在开始之前,我已经创建了一个具有基本CRUD功能的产品目录。
现在,我希望只有当用户被alread登录时,产品目录才可访问。因此,基本上,如果用户没有登录,它应该转到登录页面。如果他是,那么本地主机:3000应该带他去产品目录.我真的很困惑.我甚至不知道该怎么做.
相反,现在,登录并进入localhost:3000将我重定向到http://localhost:3000/account
请帮帮忙。
我还注意到,如果我在登录时访问我的产品目录,我会在页面顶部得到这条消息。
“必须注销才能访问此页面”
发布于 2009-11-10 13:04:11
纳乔,我建议你看http://railscasts.com/episodes/160-authlogic
它应该回答你所有的问题,还有更多。
从我头顶上..。
如果您还没有设置您的路线,请开始:
map.login 'login', :controller => 'user_sessions', :action => 'new'map.logout‘注销’,:控制器=> 'user_sessions',:操作=> 'destroy‘
接下来,在应用程序控制器中执行以下操作:
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 )
https://stackoverflow.com/questions/1704297
复制相似问题