我正在使用设计并拥有
before_filter :authenticate_user!
在资源页面上,现在页面可以由任何注册用户创建/更新,但我不希望特定用户,例如 :id = 22 没有 thls。这该怎么做 ?
例如,这是我在 PageController 上的更新代码
@page = Page.find(params[:id])
所以我想让它像
if user.id != 22
@page = Page.find(params[:id])
我正在使用设计并拥有
before_filter :authenticate_user!
在资源页面上,现在页面可以由任何注册用户创建/更新,但我不希望特定用户,例如 :id = 22 没有 thls。这该怎么做 ?
例如,这是我在 PageController 上的更新代码
@page = Page.find(params[:id])
所以我想让它像
if user.id != 22
@page = Page.find(params[:id])
你可以在你的页面控制器中通过
if current_user and current_user.id != 22
...
或者通过before_filter
在您的页面控制器中
before_filter :check_for_specific_user, :only => [:create, :update]
def check_for_specific_user
if current_user and current_user.id == 22
# redirect or something
end
end
或者你可以在你的应用程序控制器中通过
before_filter :check_for_specific_user
def check_for_specific_user
if params[:controller] == 'pages' and ['create', 'update'].include? params[:action] and current_user and current_user.id == 22
# redirect or something
end
end
也可能在应用程序控制器中有一个方法是个好主意
def admin?
current_user and current_user.id == 22
end
然后在页面控制器中,您将能够编写
if admin?
# ...
end