2012-07-23 121 views
7

我知道有一個選項可以在ruby-on-rails中使用content_tag函數,這有助於生成html標記。 我所在公司的一些Rails開發人員告訴我,這是「方便且正確」的方式,我不應該寫一個「native」html來生成一個div例如... 這是真的嗎?這是一種軌道標準嗎?它是否與性能問題或提高速度有關?爲什麼我應該使用content_tag而不是「常規」html?

我附上代碼我以前的代碼:

<div class="alert alert-<%= key %>"><%= value %></div> 

和軌函數的用法

<%= content_tag(:div, value, class: "alert alert-#{key}") %> 

第一個在我看來非常易懂,直觀的 - 比第二碼更多.. 您對此有何看法?

回答

8

能夠使用content_tag有助於以編程方式在ruby代碼中生成HTML,例如helpers和presenters。

在我看來,我通常不會在項目的佈局和模板中使用content_tags - 我不認爲它有助於編碼的可讀性。在這裏,我看不到任何生產力或表現的收益。

然而:建議的意思:如果這就是你的團隊已經標準化的東西 - 與團隊一起去。

+0

感謝您澄清事情,我知道我應該和我的(臨時)團隊一起去談標準。我只是想知道我對這位助手的解釋是真實的還是隻是標準和習慣問題...... – benams 2012-07-23 14:33:34

1

這是一種幫助您簡化HTML生成的方法。你傳入你想要使用的東西,併爲它吐出HTML。它基本上是爲你建立的,儘管我從來沒有使用它們,我寧願寫我自己的,因爲它只需要輸入助手方法調用即可。@Jesse很好的調用,如果這是你的團隊使用的,與公約

1

除了項目和Rails標準,安全性是爲什麼必須使用content_tag的另一個原因。

兩個快速的原因,我覺得content_tag更好

  1. 觀的Rails的文件是嵌入的Ruby(意)HTML從Ruby.Hence生成的頁面,就像content_tag helper方法提供的幫助你的目的從ERB生成HTML。

  2. 當直接使用HTML(原生樣式)進行硬編碼時,它很容易出現跨站點腳本攻擊(XSS)。

相關問題