9

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

  respond_to do |format|
    format.html # show.html.erb
  end

我想限制除 html 之外的所有 mime 类型(比如说)。想不出解决办法,这怎么可能?如果请求是 json,则此块不执行任何操作,这没关系,但我想要的是重定向任何不是 html 的请求。

谢谢

4

1 回答 1

16

产生的format对象respond_to具有所有常见的 mime 类型(html、js、xml 等),并且它还有一个包罗万象的 mime 类型any,可以处理其他所有事情。所以,在这种情况下:

respond_to do |format|
  format.html
  format.any { redirect_to :foo }
end

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

于 2013-01-18T07:58:37.383 回答