2015-10-16 223 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