2017-06-29 89 views
1

我做了一些Google搜索,我明白Ruby的模板引擎是erb,但模板引擎是什麼意思?模板引擎究竟是什麼?

+0

執行的角度來看,Rails的切換它的'.erb'處理器從[ERB](http://ruby-doc.org/stdlib /libdoc/erb/rdoc/ERB.html)到[Erubis](http://www.kuwata-lab.com/erubis/)到[erubi](https://github.com/jeremyevans/erubi)。所有這些都與ERB的'<% ... %>'語法兼容。 – Stefan

回答

3

模板引擎不過是表示層,它代表了html格式的rails應用程序的實際邏輯/變量。所以最終用戶可以得到他們正在尋找的東西。

請考慮您是否有@users對象,並且您想遍歷每條記錄並表示每個用戶在網頁上的詳細信息的名稱。簡單的html沒有辦法做到這一點。所以erb和其他模板引擎進入圖片。

這些引擎將變量,函數和用戶定義語法的值轉換爲html格式並向最終用戶表示。

希望這可以幫助你。

4

模板是一種圖案,模具或類似的東西,通常由木板或金屬薄板組成,用作機械工作中的測量儀或導向器,用於確定或用作圖案;型號:
- 詞典定義

在我們編程的世界中,模板是任何重複性工作共享的通用模式的框架。我們將常用模式作爲模板提取出來,現在您可以嵌入更改/動態數據並創建工作副本。

例子:您注意到您在醫院或政府獲得的表格。那些有空白區域的辦公室可供您編寫動態數據。最後,你會得到你的應用程序副本。你不是嗎?

爲了方便起見,我們將ERB作爲Ruby標準庫中的引擎。

讓我們把手弄髒吧;試試這個,看看效果:

require 'erb' 

your_template = <<-TEMP 
    This document is a template for <%= title %> <%= full_name %>. 

    Now we are going to have a line written <%= n %> times. 

    <% n.times do %> 
    This line must repeat <%= n %> times. 
    <% end %> 

TEMP 

title = 'Mr.' 
full_name = 'Shiva Gaire' 
n = 5 

generated_doc = ERB.new(your_template).result 

puts generated_doc 

輸出

This document is a template for Mr. Shiva Gaire. 

Now we are going to have a line written 5 times. 

This line must repeat 5 times. 


This line must repeat 5 times. 


This line must repeat 5 times. 


This line must repeat 5 times. 


This line must repeat 5 times. 
+1

美觀大方 – illusionist