iT邦幫忙

DAY 7
2

之前所舉的例子,
都只是在程式裡寫出個簡單的回應,
並未把完整的 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 裡,
這樣就使得主程式乾淨。

系列文章列表


上一篇
用 Sinatra 實作簡單的夢幻筆名 API
下一篇
在 Sinatra 以 Sequel 操作資料庫
系列文
建立API為中心的輕量級網站30

尚未有邦友留言

立即登入留言