从布局拆分视图时缺少模板错误

时间:2013-10-20 18:51:32

标签: ruby-on-rails

我正在使用St. Laurent& Edd Dumbill的Learning Rails一书。从chp3中的布局练习中分割视图时,我得到了一个丢失的模板错误。

请帮助我理解为什么会出现以下错误。

缺少模板 在视图路径C中缺少布局布局/ hello.html.erb:/ Instantrails / rails_apps / hello / app / views

控制器信息: 名称:hello_controller

路径:C:\ INSTAN~1 \ rails_apps \ hello \ app \ controllers

代码:

class HelloController <ApplicationController

def index
@message="Hello!"

@count=3

@bonus="This message came from the controller."
end

查看信息:

名称:index.html

路径:C:\ INSTAN~1 \ rails_apps \ hello \ app \ views \ hello

代码:

<h1><%=h @message %></h1>
<p>This is a greeting from app/views/hello/index.html.erb</p>
<% for i in 1..@count %>
<p><%= @bonus %></p>
<% end %>

名称:hello.html.erb

路径: C:\ INSTAN〜1 \ rails_apps \你好\应用\视图\布局

代码:

<html>
<head><title><%=h @message %> </title>
<% stylesheet_link_tag 'hello' %>

</head>
<body>
(using layout)
<!--layout will incorporate view-->
<%= yield :layout %>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

仔细检查所有文件名。我只是将这三个文件复制到我的测试项目(rails 4)中,它似乎工作正常。你错过了控制器类中的结束'结束'(可能只是一个复制和粘贴错误)。

答案 1 :(得分:0)

可能您忘记在控制器文件中包含布局名称:

class HelloController  < ApplicationController

 layout "Hello" 

 def index
  #your code goes here.
 end

该布局部分将查找app / views / Layouts / hello.html.erb。