Ruby on rails 如何在筛选器上设置HTTP状态代码?
当不满足控制器筛选器条件时,如何设置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
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他编辑了他的答案以解决问题。现在很好,伊姆霍