2012-03-05 37 views
5

当一个谷歌机器人试图访问我的一个控制器时,我收到了这个错误消息。ActionView :: MissingTemplate:Missing template

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 

控制器方法channels#show看起来像这样

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

访问URL提出了谷歌机器人的错误不会为我提出一个错误。

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

我正在使用rails 3.2.1。

+0

它打的是哪个网址?尝试在开发过程中自己进入该URL。另外,请检查HTTP引用来查看它来自哪个页面。 – nicholaides 2012-03-05 04:07:48

+0

@nicholaides我已经试着访问有问题的网址,这是有效的。 – Oleander 2012-03-05 13:01:56

+0

这个应用程序的实时URL是什么? – 2012-03-25 15:23:52

回答

2

我在Rails 3应用程序中看到了这个错误,并且一直在关注复制错误。日志有Missing Template错误,但是当我手动尝试请求时,它工作正常。

我怀疑来自Google的HTTP请求没有设置Rails正在正确处理的MIME。我发现粗解决方法是删除视图模板哑剧,所以

example/index.html.erb 

现在

example/index.erb 

这会停止丢失模板错误,因为模板将被用于所有的默剧。

+0

你救了我几个小时! – 2017-05-28 02:51:18

相关问题