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

标签 ruby-on-rails ruby ruby-on-rails-3.1 devise before-filter

  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/

相关文章:

ruby-on-rails - 删除侧边栏 - 疯狂商务

ruby-on-rails - rails : force a model to be not valid

ruby-on-rails - simple_form 集合标签

jquery - 一起使用 Cocoon(嵌套表单)和 jQuery 可排序

python - Python 是否有像 Ruby 的 %w(things in array) 这样创建数组的快捷方式

ruby - 检测安装的 CPU 数量

ruby-on-rails - Rails 3.1 和 Heroku - 即使使用 'therubyracer-heroku' 仍然无法工作

ruby-on-rails - 有什么工具可以将产品表导入spree

ruby-on-rails - Ruby DateTime.new 困惑

mysql - Rails 时间戳 : complex order by updated_at/created_at