2012-06-03 66 views
0

在Rails應用程序中,我有幫助程序呈現html片段的方法,例如, Twitter引導字體如何在link_to錨點中呈現html +字符串?

def edit_icon 
    content_tag(:i, "", :class=>'icon-edit') 
end 

我想在鏈接錨點中顯示此鏈接,並附加其他文本。例如

<%= link_to "#{edit_icon} Edit this Record", edit_record_path(@record) %> 

這是目前呈現content_tag作爲一個字符串,而不是HTML。我如何將它呈現爲HTML?

我用<%= link_to "#{raw edit_icon}<%= link_to "#{edit_icon.html_safe}進行了實驗,但這些似乎並不是我在這種情況下所需要的。

感謝您的任何想法。

回答

5

問題是Rails字符串插值會將content_tag的HTML輸出轉換爲「安全」格式。您嘗試的修復方法在應用了字符串插值之前都會運行,這將不起作用

修復問題只需稍做更改:將方法調用移動到字符串之外。

Do this: 
    <%= link_to edit_icon + "Edit this Record", edit_record_path(@record) %> 
Instead of: 
    <%= link_to "#{edit_icon} Edit this Record", edit_record_path(@record) %> 
+0

完美!你能否提供解釋這一點的任何良好信息來源?或者換句話說,我應該在哪裏尋找自己想出來的東西?再次感謝! –

+0

這裏有一個很好的解釋http://yehudakatz.com/2010/02/01/safebuffers-and-rails-3-0/我想我從大約一年前的Obie Fernandez讀了The Rails 3 Way, 。 –

相關問題