ruby-on-rails - 如何将参数发送到前置过滤器?

标签 ruby-on-rails ruby

我想像这样在我的应用程序 Controller 中创建一个 before_filter 方法...

def check_role(role_name)
  unless logged_in_user.has_role? role_name
    flash[:notice] = 'Access to that area requires additional privileges.'
    redirect_to :back
  end
end

但是,看起来不像之前过滤器可以带参数。

有没有办法参数化这个调用,还是我想用锤子敲螺丝?

最佳答案

你应该可以用一个 block 来做到这一点:

before_filter {|controller| controller.check_role('admin') }

关于ruby-on-rails - 如何将参数发送到前置过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/675579/

相关文章:

ruby-on-rails - 如果 open-uri 有效,为什么 net/http 返回一个空字符串?

ruby - `map!' : private method called for String (NoMethodError)

ruby - 如何从数组中的所有元素中删除字符串?

ruby-on-rails - 目录 : integration test fail

ruby-on-rails - 在 Ruby 中下载的 Google 文档的路径在哪里?

ruby-on-rails - Ruby 扩展并包含跟踪代码

ruby - 是否可以使用 Fiddle 将结构传递或返回到 native 代码?

mysql - 获取每组的最新记录及其所有值

ruby-on-rails - 如何将 Rails session cookie 过期时间设置为 "session"

ruby-on-rails - 为什么我的 rails3 beta4 模型中出现 "SystemStackError: stack level too deep"