在Rubyonrails应用程序中我想只登录用户进入内页? 如何将直接输入的网址重定向到索引页?
在php if(!isset($ _ SESSION [id]){header(“location:index.php”)},如何在ruby on rails上实现
答案 0 :(得分:3)
这里是
在application_controller.rb中:
将此代码放在application_controller中将使其可供所有控制器使用。
class ApplicationController < ActionController::Base
protect_from_forgery
protected
def confirm_logged_in
unless session[:id]
flash[:notice] = "Please log in"
redirect_to :root
return false
else
return true
end
end
end
然后您可以在任何需要它的控制器中使用此方法,例如
如果您需要确认用户已登录以显示该操作,那么
class UsersController < ApplicationController
before_filter :confirm_logged_in, :only => [:show]
def show
#all your code
end
end
应该有效,因为这将确认访问此节目网址的用户已登录。
有关详细信息,请查看此rails guides on filters的链接。也可以有更有效的方法来实现这一目标。
但是,我会建议使用像Cancan(Github)这样的宝石,因为我在很多应用程序中都使用了它,效果很好。上面提到的代码是基本的,有许多更好和更先进的方法来处理这个问题,但它应该做的工作。希望它有所帮助。