2011-07-28 78 views
0

讓我們假裝我們有一個名爲Foo的類的Rails項目位於lib目錄中。從/ lib中的代碼呈現視圖

我們希望根據其屬性生成一些HTML。

現在,通過適當地連接HTML片段來創建一個大字符串,感覺不太正確。

我的問題是:有沒有一種有福的方式來做到這一點?

回答

3

你有一對非常簡單的選項。如果您正在使用ERB,你可以這樣做:

ERB.new(File.read(the_file_path)).result 

我使用一種叫做傾斜(https://github.com/rtomayko/tilt)庫在我的應用程序之一,渲染HAML模板。下面是我現在正在運行的確切香腸工廠代碼:

template = Tilt.new(ITEM_TEMPLATE) # ITEM_TEMPLATE is the path of a .haml file 
template.render nil, {:item => item, :item_details => item_details} 
# item and item_details are now available as local variables in the partial 

如果你不想去的模板路線,你可以嘗試像架橋機(http://erector.rubyforge.org/ userguide.html)。

最壞的情況:不是串聯片段,您可以使用HEREDOC很好地格式化:

<<-HTML 
    <div id="foo"> 
    <span class="bar">#{thing.method}</span> 
    <div>#{thing.attribute}</div> 
    </div> 
HTML 
+0

非常感謝你,@Kyle。 –