我想在控制器上使用以下方法创建一个before_filter:current_user
它有效...
但是我在用户的属性中有一个admin布尔值,我希望只有拥有此布尔值为“true”的用户才能使用控制器。
我怎样才能做到这一点 ?
感谢您的回答
答案 0 :(得分:6)
您可以在rails中使用任何返回布尔值的方法作为before_filter
。所以在你的情况下,只需要制作一个像
def is_admin?
return (current_user && current_user.admin?)
end
然后使用您要过滤的操作调用控制器顶部的before_filter is_admin?
。
请注意,&&
的短路评估可确保admin?
上的current_user
未被{{1}}调用。