【问题标题】:Explain the difference between ActionController#respond_to and ActionController::respond_to解释 ActionController#respond_to 和 ActionController::respond_to 的区别
【发布时间】:2014-04-04 16:45:30
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-29
      • 2013-10-11
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多