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,我只是因为我的英语不好而给出一些参考。
您必须知道我正在使用Devise作为current_admin和current_company方法。 我需要应用不同的过滤器(如果是admin或者如果是company.id = X)和其他操作。
在此先感谢,我非常喜欢这里。 任何帮助将不胜感激。
答案 0 :(得分:68)
使用ApplicationController
方法创建:
def check_privileges!
redirect_to "/", notice: 'You dont have enough permissions to be here' unless current_admin || current_company
end
然后在你的控制器中:
before_filter :check_privileges!, only: [:new, :create, :edit, :save]
或者
before_filter :check_privileges!, except: [:index, :show]