之前所舉的例子,
都只是在程式裡寫出個簡單的回應,
並未把完整的 html 畫出來。
雖不不見得一定要用 MVC 的模式,
但利 views 把資料處理與表現的樣式切開來,
較容易一般html的維護。
使用內建預設的 erb 語法
一裝 sinatra 就 rails 一樣,
可用ruby 內建的 erb 語法來使用預設的 template,
如果把 template 與主要的程式檔都寫在同一檔上,
寫的會是像這樣:
get '/hi' do
@name = '鐵人五'
erb :hi
end
#在該檔案的最底下加上:
__END__
@@ layout
<html lang="en">
<meta charset="UTF-8" />
<title>鐵人五測試</title>
<%= yield %>
@@ hi
<h1>Hi <%= @name %></h1>
使用其他的 template engine
參閱 Views / Templates
有許多的 template 可選用,
以 haml 為例上述程式寫成這樣:
get '/hi' do
@name = '鐵人五'
haml :hi
end
__END__
@@ layout
!!! 5
%html
%head
%title 鐵人五測試
%body
= yield
@@ hi
%h1= @name
使用 views 目錄
雖然可用一個檔案把所有view寫在裡面,
但維護上來說,不同頁面分成各檔較好管理,
建個 views 目錄,
把 __END__ 拿掉,
將 @@layout、@@hi 的區段內容,
分別寫在 views/layout.erb, views/hi.erb 裡,
若是 haml 則改為:
分別寫在 views/layout.haml, views/hi.haml 裡,
這樣就使得主程式乾淨。