gpt4 book ai didi

ruby-on-rails - Rails before_filter 用于 Controller 中的特定操作

转载 作者:数据小太阳 更新时间:2023-10-29 06:25:05 25 4
gpt4 key购买 nike

  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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com