解释ActionController #response_to和ActionController :: respond_to之间的区别

时间:2014-04-04 16:45:31

标签: ruby-on-rails actioncontroller respond-to

我已经阅读了文档,每次都让我感到困惑,因为它没有回答一些基本的事情。我意识到类方法::respond_to(通常在控制器顶部使用)的主要目的是与respond_with一起使用。实例方法#respond_to(通常在每个操作结束时)的目的是为不同的格式提供不同的响应。

我也知道,可以将实例方法版本合并为类方法,但在操作中使用,以简洁,如下所示:respond_to(:html)。用例是#respond_to的另一个目的,即拒绝对未指定格式的请求。 (我认为它引发了UnspecifiedFormat异常)

类方法是否也具有相同的功能?例如,如果我有一个响应html的控制器,如果我只是将respond_to(:html)放在文件的顶部,我可以期望它拒绝其他格式的请求吗?我这样做有问题,所以我不知道我是否做错了什么,或者它是不是应该和实例方法一样。尊重。

1 个答案:

答案 0 :(得分:1)

所以我最后运行了一个实验,不,类方法respond_to不会拒绝像实例方法那样对未指定格式的请求。有点令人困惑的差距,但你有它。如果要拒绝无效格式的请求(使用406),则必须在每个控制器的每个操作中指定有效格式(使用实例方法respond_to