Mau*_*uiz 32 ruby ruby-on-rails before-filter devise ruby-on-rails-3.1
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
Run Code Online (Sandbox Code Playgroud)
这是我想要做的代码,但我无法弄清楚如何正确地做到这一点.我想要实现的是为我的每个动作应用before_filter规则.因此,或许用户可以存取权限去INDEX行动,但不会在修改动作等我知道的before_filter方法运行一个单一的时间,我不能跑4个before_filters,我只是给的,因为我的英语不好一些参考.
您必须知道我正在使用Devise作为current_admin和current_company方法.我需要应用不同的过滤器(如果是admin或者如果是company.id = X)和其他操作.
在此先感谢,我非常喜欢这里.任何帮助将不胜感激.
Hau*_*eth 69
在您的ApplicationController方法中创建:
def check_privileges!
redirect_to "/", notice: 'You dont have enough permissions to be here' unless current_admin || current_company
end
Run Code Online (Sandbox Code Playgroud)
然后在你的控制器中:
before_filter :check_privileges!, only: [:new, :create, :edit, :save]
Run Code Online (Sandbox Code Playgroud)
要么
before_filter :check_privileges!, except: [:index, :show]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27109 次 |
| 最近记录: |