Ruby on rails 如何在筛选器上设置HTTP状态代码?

Ruby on rails 如何在筛选器上设置HTTP状态代码?,ruby-on-rails,http,Ruby On Rails,Http,当不满足控制器筛选器条件时,如何设置HTTP状态代码 例如,在以下控制器中 class FooController < ApplicationController before_filter :foo_filter def action respond_to :html end private def foo_filter return false unless some_conditions end end class FooContro

当不满足控制器筛选器条件时,如何设置HTTP状态代码

例如,在以下控制器中

class FooController < ApplicationController
  before_filter :foo_filter

  def action
     respond_to :html
  end

  private

  def foo_filter
    return false unless some_conditions
  end
end
class FooController
某些条件为false的情况下调用操作时,我想将HTTP状态代码设置为410。我该怎么做

我有两个正在运行的应用程序,一个在rails 3中,另一个在rails 2中,所以我对每个rails版本的答案感兴趣,如果不同的话。

class FooControllerclass FooController < ApplicationController
  before_filter :foo_filter

  def action
    respond_to :html
  end

  private

  def foo_filter
    head :gone unless some_conditions
  end
end
前过滤器:前过滤器 def动作 回复:html 结束 私有的 def foo_过滤器 头:走了,除非有什么条件 结束 结束
谢谢你的回答,但这打破了
DRY
原则,因为我必须为使用此过滤器的每个操作添加
if@gone
测试。@fotanus你能解释一下上面的评论吗?@MichaelSzyndel他编辑了他的答案以解决问题。现在很好,伊姆霍