首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3和Strange Accept标头

Rails 3和Strange Accept标头
EN

Stack Overflow用户
提问于 2011-02-05 12:56:54
回答 2查看 1.9K关注 0票数 8

我的Rails3站点被带有奇怪的accept头的爬虫程序击中,触发异常,如下所示

代码语言:javascript
复制
ActionView::MissingTemplate occurred in home#show

以下是一些导致问题的accept标头

代码语言:javascript
复制
text/*
application/jxw
*/*;q=0.1

在这些情况下,这被解释为请求的格式,因此导致缺少模板错误。我真的不关心我返回给这些爬虫的是什么,只是想避免异常。

EN

回答 2

Stack Overflow用户

发布于 2011-02-05 14:18:37

您可以在应用程序控制器中避免出现这样的异常,并呈现HTML模板:

代码语言:javascript
复制
class ApplicationController
  rescue_from ActionView::MissingTemplate, :with => :render_html

  def render_html
    if not request.format == "html" and Rails.env.production?
      render :format => "html"
    else
      raise ActionView::MissingTemplate
    end
  end
end
票数 7
EN

Stack Overflow用户

发布于 2011-05-30 23:22:04

因为这样会阻止添加评论,直到我有50个声誉,我必须提交一个新的答案来回答Ryan Bigg在评论中的问题。

not request.format == "html"request.format != "html"或多或少是一回事。andornot在逻辑上与&&||!相同,但它们的优先级要低得多。因此,在本例中,==运算符在not运算符之前进行计算,因此它会产生与使用!=相同的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4905229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档