2012-08-31 235 views
3

我想使用的link_to助手將輸出下面的HTML生成一個鏈接:Rails的:添加一個空的標籤加內容LINK_TO

<a href="some_url"><i class="some_class"></i>Link Name</a> 

但是我使用代碼嘗試要做到這一點:

link_to(tag("i", class: options[:icon]) + title, url) 

...正在輸出:

<a href="some_url"><i class="some_class">Link Name</i></a> 

爲什麼這樣做,我怎麼能解決這個問題?謝謝。

編輯:
我相信我找到了問題。

<i>代碼並不HTML5自閉的標籤。因此i之後的文本被視爲該元素的內容。

+0

的link_to((標籤( 「我」,等級:選擇[:圖標])+標題),URL),試試這個 – Prem

+0

@prem我以前試過了。同樣的結果。我不確定爲什麼Rails將文本內容放在裏面*應該是一個空標籤。 –

回答

1

這是圖標標籤幫助我在應用程序中使用,我經常通過作爲第一個參數的link_to,它可以被用來創建一個單獨的圖標標籤,或圖標標籤,跟着文本。

def icon_tag(icon, *args) 
    options = args.extract_options! 
    text = args.first || options.delete(:text) 
    if text.nil? 
     content_tag :i, "", class: ["icon", "icon-#{icon}"] + options[:class].to_a 
    else 
     "#{icon_tag icon} #{text}".html_safe 
    end 
    end 
5

您是否嘗試過使用link_to的塊格式?

<%= link_to url do %> 
    <%= tag("i", class: options[:icon]) %> 
    Link Name 
<% end %> 

調整到您的需要,也許你會得到你要的東西。