def new
before_filter do
redirect_to "/" unless current_admin || current_company
flash[:notice] = 'You dont have enough permissions to be here' unless current_admin || current_company
end
CODE CODE CODE
end
def edit
before_filter do
redirect_to "/" unless current_admin.id = 5
flash[:notice] = 'You dont have enough permissions to be here' unless current_admin || current_company
end
CODE CODE CODE
end
这是我想做的代码,但我不知道如何正确地做。 我想要实现的是为我的每个操作应用 before_filter 规则。因此,也许用户可以访问 de INDEX 操作,但不能访问 EDIT 操作等。 我知道before_filter方法运行一次,我不能运行4个before_filters,我只是提供一些引用,因为我的英语不好。
您一定知道我正在为 current_admin 和 current_company 方法使用 Devise。 我需要应用不同的过滤器(如果是 admin 或 company.id = X)和其他操作。
提前致谢,我被困在这里了。 任何帮助将不胜感激。
最佳答案
在您的 ApplicationController
方法中创建:
def check_privileges!
redirect_to "/", notice: 'You dont have enough permissions to be here' unless current_admin || current_company
end
然后在你的 Controller 中:
before_filter :check_privileges!, only: [:new, :create, :edit, :save]
或者
before_filter :check_privileges!, except: [:index, :show]
关于ruby-on-rails - Rails before_filter 用于 Controller 中的特定操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10061373/