gpt4 book ai didi

ruby-on-rails - ActionView::MissingTemplate:缺少模板

转载 作者:行者123 更新时间:2023-12-03 00:40:53 25 4
gpt4 key购买 nike

当 Google 机器人尝试访问我的某个 Controller 时,我收到此错误消息。

ActionView::MissingTemplate: Missing template channels/show, application/show with {:locale=>[:"sv-SE", :en], :formats=>["*/*;q=0.9"], :handlers=>[:erb, :builder, :haml]}. Searched in: * "/opt/www/app/releases/20120228181534/app/views" * "/opt/www/app/shared/bundle/ruby/1.9.1/gems/kaminari-0.13.0/app/views"

问题是我无法重现它。该错误上周已发生 121 次(根据 airbrake )。

Here是回溯。

第 18 行是我的应用程序中唯一提到的行,是此代码的 super 部分

def render(options = {}, extra_options = {}, &block)
if request.headers['X-PJAX'] or params[:no_layout] == "true" or params[:_pjax]
options[:layout] = false
end
super(options, extra_options, &block)
end

Controller 方法channels#show看起来像这样

def show
@channel = # ...
@today = # ...
@yesterday = # ...
@tomorrow = # ...
end

访问引发 Google 机器人错误的网址不会对我引发错误。

唯一失败的网址是包含特殊字符的网址,例如 {"action"=>"show", "id"=>"25-jönköping", "controller"=>"channels"}ORIGINAL_FULLPATH 值设置为 /channels/25-j%c3%b6nk%c3%b6ping

我使用的是 Rails 3.2.1。

最佳答案

我也在 Rails 3 应用程序上看到了此错误,并且在复制该错误时遇到了同样的情况。日志有 Missing Template 错误,但是当我手动尝试请求时,它工作正常。

我怀疑来自 Google 的 HTTP 请求没有设置 Rails 正确处理的 mime。我发现的粗略解决方案是删除 View 模板 mime,所以

example/index.html.erb

现在

example/index.erb

这会阻止“缺少模板”错误,因为该模板将用于所有 mime。

关于ruby-on-rails - ActionView::MissingTemplate:缺少模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9561000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com