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

hid*_*ori 7 resources templates routes ruby-on-rails ruby-on-rails-3

我刚开始使用Rails,我不确定我做得不好.

在routes.rb我有

resources :pages
Run Code Online (Sandbox Code Playgroud)

在app/controllers/pages_controller.rb我有

class PagesController < ApplicationController
  def index
  end
end
Run Code Online (Sandbox Code Playgroud)

我在app/views/layouts/application.html.erb中有一个布局,在app/views/home/pages/index.html.erb中有一个模板,当我请求"/ pages"时我要渲染它.但是,我得到了错误

模板丢失了

缺少模板页面/索引,应用程序/索引{:locale => [:en],:formats => [:html],:handlers => [:erb,:builder,:coffee]}.搜索:*"/ ###/app/views"

我已经使用stackoverflow多年没有发布,但是很多不同的东西似乎触发了这个错误,很难找到我特定情况的答案.我也是菜鸟:3请帮忙!

Dav*_*acs 10

您说您必须app/views/home/pages/index.html.erb代表页面资源的索引视图.我认为该home/目录不是必需的.

换句话说,您的视图文件应该是app/views/pages/index.html.erb.


MrD*_*anA 5

它正在寻找它,app/views/pages/index但你有它app/views/home/pages/index。这种细微的差异使得 Rails 约定丢失了。

如果您必须保留新的目录层次结构,请在控制器上执行以下操作:

class PagesController < ApplicationController
  def index
    render :partial => "home/pages/index"
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,默认情况下,如果您有一个资源,例如:pages,它会自动查找app/views/pages.