Rails respond_to重定向除X mime-type之外的所有请求

dmt*_*tzz 7 ruby-on-rails ruby-on-rails-3

下面是我在控制器中使用的典型的respond_to块

  respond_to do |format|
    format.html # show.html.erb
  end
Run Code Online (Sandbox Code Playgroud)

我想限制除html之外的所有mime类型(比如说).无法想出解决方案,这怎么可能?如果请求是json,这个块什么都不做,这没关系,但我想要的是重定向任何不是html的请求.

谢谢

Jim*_*lle 12

format产生的对象respond_to具有所有常用的mime类型(html,js,xml等),并且它还具有any可以处理其他所有内容的catch-all mime类型.所以,在这种情况下:

respond_to do |format|
  format.html
  format.any { redirect_to :foo }
end
Run Code Online (Sandbox Code Playgroud)

将使用html的默认渲染,并将重定向其他所有内容.请参阅文档(一点点)更多信息:http://apidock.com/rails/ActionController/MimeResponds/respond_to