rails 3编写一个控制器方法来检查什么类型是current_user
问题描述:
我想在我的应用程序控制器中编写一个方法,可用于所有控制器。这是一个简单的角色的事情。rails 3编写一个控制器方法来检查什么类型是current_user
def user_is_admin
if current_user.admin == true
end
end
如果当前登录用户将.admin设置为true,则此方法应返回true。
然后在我控制我做的: 的before_filter:user_is_admin,:只=> [显示]
虽然代码没有示数,其也没有保护的网页被浏览。
有什么想法?
答
如果当前用户不是管理员,则需要使用before_filter来中断操作。
def user_is_admin
if current_user.admin != true
redirect_to <some_other_action>
return false
end
end
请注意,这是检查current_user不是管理员。 或者,你可以抛出一个异常,或者使错误模板而不重定向:
def user_is_admin
if current_user.admin != true
raise "Admin required"
end
end
或
def user_is_admin
if current_user.admin != true
render :template => 'shared/admin_required'
return false
end
end
答
您的意思是?
def user_is_admin
redirect_to "/" unless current_user.admin
end
答
你问不同的东西,然后你的代码做什么。
你想你的方法做的,是这样的:
def user_is_admin
redirect_to root_url, notice: "You do not have sufficient privileges for that!" unless current_user.admin
end
哪里root_url
是在那里他们将被重定向。你仍然需要before_filter。
感谢您的编辑,不知道为什么我没有那样输入:) – andrewpthorp 2011-12-22 02:08:49