我已经阅读了文档,每次都让我感到困惑,因为它没有回答一些基本的事情。我意识到类方法::respond_to
(通常在控制器顶部使用)的主要目的是与respond_with
一起使用。实例方法#respond_to
(通常在每个操作结束时)的目的是为不同的格式提供不同的响应。
我也知道,可以将实例方法版本合并为类方法,但在操作中使用,以简洁,如下所示:respond_to(:html)
。用例是#respond_to
的另一个目的,即拒绝对未指定格式的请求。 (我认为它引发了UnspecifiedFormat异常)
类方法是否也具有相同的功能?例如,如果我有一个仅响应html的控制器,如果我只是将respond_to(:html)
放在文件的顶部,我可以期望它拒绝其他格式的请求吗?我这样做有问题,所以我不知道我是否做错了什么,或者它是不是应该和实例方法一样。尊重。
答案 0 :(得分:1)
所以我最后运行了一个实验,不,类方法respond_to
不会拒绝像实例方法那样对未指定格式的请求。有点令人困惑的差距,但你有它。如果要拒绝无效格式的请求(使用406),则必须在每个控制器的每个操作中指定有效格式(使用实例方法respond_to
)