如果不是admin,则将用户重定向到Root

时间:2016-05-29 14:24:00

标签: ruby-on-rails devise

我目前正努力做到这一点,如果用户不是管理员,他们无法进入'创建&编辑'页面,也不能销毁条目。

我在我的控制器中有这个方法

def must_be_admin
  unless current_user && current_user.admin?
    redirect_to root_path, notice: "Admin Needed."
  end
end

我称之为:

  before_filter :must_be_admin, only: [:edit, :destroy, :create]

这似乎在创建页面上的用户中没有记录,但是不允许他们执行实际的创建操作。反正是否也不允许用户在实际页面上?

  

基本上不允许任何非管理员用户   创建/编辑/销毁(以及不让它们在实际页面上)和   只需将它们重新路由回索引。

1 个答案:

答案 0 :(得分:1)

是的,如果您限制新操作和编辑操作,他们将无法看到任何页面。如果你有一个标准的CRUD控制器,只需删除before_action中的“only”选项,所有非管理员都将被阻止。
您必须记住,在阻止创建操作时,您不会阻止显示所有内容的“新”操作页面。阻止“新”操作也会阻止他们查看页面。