请求格式时,Rails 4中缺少模板错误* / *;

时间:2015-05-02 06:47:40

标签: ruby-on-rails internet-explorer format actionview

我很长一段时间都看到这些错误,但没有发现问题:

ActionView::MissingTemplate: Missing template pages/home, application/home with {:locale=>[:en], :formats=>["*/*;"]}

用户代理总是MSIE6(这是我之前放弃的部分原因)。

要重现:curl -H "Accept: */*;" -I http://localhost:5000

任何人都知道如何解决?

修改

curl -H "Accept: */*" -I http://localhost:5000有效。仅当格式设置为*/*;时才会起作用(注意分号)。

更新

我尝试按照评论中的建议修改Mime:ALL,但无法同时接受*/**/*;。我看到的一个解决方案是修补如果没有或存在格式错误的mime类型时如何处理请求,但我不确定如何。 This answer提供了线索,但我仍然没有。

更新

我仍然看到这些错误等等。一个新的是:formats=>["hc/url;*/*"](Firefox)。我很惊讶这不会打击其他任何人,我认为我的代码中没有任何特定内容会导致不常见的错误。

1 个答案:

答案 0 :(得分:0)

gregkare 刚刚在github上发布了修补程序。

DEFAULT_RESPONSE_FORMAT = :html  
before_filter :set_default_response_format

def set_default_response_format
  request.format = DEFAULT_RESPONSE_FORMAT if request.format.to_sym.nil?
end

不完全确定副作用,但现在看起来效果很好。