0

我正在使用 St. Laurent & Edd Dumbill 的 Learning Rails 书。从上面的 chp3 中的布局练习中拆分视图时,我收到了缺少模板的错误。

请帮助我理解为什么会发生以下错误。

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

控制器信息:名称: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\hello\app\views\layouts

代码:

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

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

</body>
</html>
4

2 回答 2

0

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

于 2013-10-20T19:11:28.993 回答
0

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

class HelloController  < ApplicationController

 layout "Hello" 

 def index
  #your code goes here.
 end

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

于 2013-10-20T20:19:17.757 回答