我遇到一个无法解决的错误:
ActionView::MissingTemplate (Missing template cluster/delete_stuff.erb in view path app/views)
<...snip trace...>
Rendering rescues/layout (internal_server_error)
我正在“增强”其他人的代码,并遵循他们制定的约定,他们的代码如下:
<%= render :partial => "other_stuff" %>
和一个名为**_other_stuff.html.erb**的文件,它都可以工作,但是当我复制这些小片段时,我得到了上面的错误。有什么想法吗?这里发生了一些事情,我需要弄清楚。
4条答案
按热度按时间mctunoxg1#
原来我没有一个
render :something
在我的控制器方法中,所以我猜Rails认为必须有一个“delete_stuff.erb”来知道要做什么。添加了一个render,错误消息就消失了。
wz8daaqr2#
ActionView
将在当前控制器视图文件夹中查找模板/片段,除非其视图路径在控制器中已更改-您可以先尝试匹配prepend and append不同的视图路径。由于您特别提到了片段,请查看partials上的文档。你的views/cluster目录下有
_delete_stuff.html.erb
文件吗?如果没有,_delete_stuff.html.erb
片段在哪里?如果不在同一个目录下,你需要调用render :partial => 'other_directory/delete_stuff'
来显示你的片段。zvokhttg3#
在我的情况下,这是后台作业的问题。Sidekiq正在使用旧代码运行(一些部署没有正确重新启动它)。
在杀死sidekiq和守护进程后,下一次启动时,它工作正常,没有丢失模板
a8jjtwal4#
我发现在我的例子中,一个子函数在render语句之前就失败了,在那个代码区域没有错误处理,所以我不得不放入debug语句来发现错误在哪里,然后这个错误消息就消失了。