我刚刚开始使用Rails,我不确定我做得不好。
在routes.rb中我有
resources :pages
在app / controllers / pages_controller.rb中我有
class PagesController < ApplicationController
def index
end
end
我在app / views / layouts / application.html.erb中有一个布局,在app / views / home / pages / index.html.erb中有一个模板,当我请求“/ pages”时我想要渲染它。但是,我收到了错误
缺少模板
缺少模板页面/索引,应用程序/索引{:locale =&gt; [:en], :formats =&gt; [:html],:handlers =&gt; [:erb,:builder,:coffee]}。搜索范围: *“/ ### / app / views”
我已经使用stackoverflow多年没有发布,但是很多不同的东西似乎触发了这个错误,很难找到我特定情况的答案。我也是一个菜鸟:3请帮忙!
答案 0 :(得分:10)
您说您有app/views/home/pages/index.html.erb
来表示您的网页资源的索引视图。我认为home/
目录不是必需的。
换句话说,您的视图文件应为app/views/pages/index.html.erb
。
答案 1 :(得分:4)
它希望在app/views/pages/index
中找到它,但您可以在app/views/home/pages/index
中找到它。这种微小的差异使得Rails惯例失去了。
如果必须保留新的目录层次结构,请在控制器上执行此操作:
class PagesController < ApplicationController
def index
render :partial => "home/pages/index"
end
end
但是,默认情况下,如果您有资源,例如:pages
,它会自动查看app/views/pages
。
答案 2 :(得分:0)
我遇到了这个问题,我只是通过将文件夹名称从汽车更改为汽车而解决了这个问题。我不得不将文件夹名称从单数更改为复数。