我正在使用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>
答案 0 :(得分:0)
仔细检查所有文件名。我只是将这三个文件复制到我的测试项目(rails 4)中,它似乎工作正常。你错过了控制器类中的结束'结束'(可能只是一个复制和粘贴错误)。
答案 1 :(得分:0)
可能您忘记在控制器文件中包含布局名称:
class HelloController < ApplicationController
layout "Hello"
def index
#your code goes here.
end
该布局部分将查找app / views / Layouts / hello.html.erb。