Rails“模板丢失”错误,但它存在(3.2.1)

时间:2012-02-08 20:34:36

标签: ruby-on-rails ruby-on-rails-3 templates resources routes

我刚刚开始使用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请帮忙!

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)

我遇到了这个问题,我只是通过将文件夹名称从汽车更改为汽车而解决了这个问题。我不得不将文件夹名称从单数更改为复数。