用current_user创建一个before_filter

时间:2011-10-17 10:12:01

标签: ruby-on-rails-3 before-filter

我想在控制器上使用以下方法创建一个before_filter:current_user
它有效...
但是我在用户的属性中有一个admin布尔值,我希望只有拥有此布尔值为“true”的用户才能使用控制器。
我怎样才能做到这一点 ?

感谢您的回答

1 个答案:

答案 0 :(得分:6)

您可以在rails中使用任何返回布尔值的方法作为before_filter。所以在你的情况下,只需要制作一个像

这样的方法
def is_admin?
  return (current_user && current_user.admin?)
end

然后使用您要过滤的操作调用控制器顶部的before_filter is_admin?

请注意,&&的短路评估可确保admin?上的current_user未被{{1}}调用。