2015-10-16 188 views
1

我在学习Ruby-on-Rails。为此我有一个'你好世界'样本。 这就是我的config/routes.rbRails中缺少模板

Rails.application.routes.draw do 
    root 'application#show' 
end 

controllers/application_controller.rb

class ApplicationController < ActionController::Base 
    protect_from_forgery with: :exception 

    def show 
    render 'startpage' 
    end 
end 

最后我views/startpage.html.erb

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8" /> 
<title>Hello World!</title> 
</head> 

<body id="index" class="home"><h1>Hello World!!</h1> 
</body> 
</html> 

但是,当我打开我的网站我得到这个错误:

Template is missing 
Missing template application/startpage with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in: * "/home/ubuntu/workspace/app/views" 

那么,我是否错过了一些东西,或者在其他地方有startpage.html.erb文件?

+0

将您的views/startpage.html.erb文件移动到views/application/startpage.html.erb – Jaxx

回答

1

您的模板需要位于/views/application之内才能使用。

按照惯例,导轨在/views/CONTROLLER/action的内部看起来没有指定特定的位置。

/views/application/startpage.html.erb应该在你的情况下工作。

奖励学习要点:

一种常见的做法我看到创建正常的,静态页面,是一个PagesController它处理它们。这样做,你的路线将指向pages#startpage,你的观点将在/views/pages/startpage.html.erb之内 - 只是一个提示!

+0

谢谢。我会尽快接受你的回答。顺便说一句:+1的提示,我会尝试它! – Peter