2010-06-19 43 views
2

我是一位Ruby on Rails業餘愛好者,我試圖在導航欄中的錨標記內嵌入div標記。我可以讓它工作,但是我寫的結果代碼非常糟糕,而且肯定不是rails的方式。我如何在導航欄中嵌入錨定標記內的div

這裏是我試圖在HTML來完成一個例子:

<a href="tell-a-friend"> 
<div id="tellafriend"> 
    <strong>Strength in Numbers.</strong><br /> 
    Suggest a friend or colleague to participate in this survey. 
</div> 
</a> 

這裏是我想出了這樣做的ERB:

<%= link_to content_tag(:div, 
    content_tag(:strong, 'Add your labor rates now.') + 
    content_tag(:br, '') + ' We are counting on you.', :id => 'participate'), 
participate_path %> 

或者我在這裏混了一些HTML和ERB:

<%= link_to '<div id="results"> 
    <strong>See the results.</strong><br /> 
    Knowledge is power. 
</div>'.html_safe, results_path %> 

我的兩個解決方案看起來都非常醜陋......但將其移入助手看起來並不像ri ght要做的事情,因爲DIV的內容發生了變化,而且我只在一個頁面上顯示其中的3個。

所以,如果有人知道更好的方法來做到這一點,我感興趣! HTML,ERB和HAML的任何組合都可以。

回答

7

環節的工作作爲塊:

<% link_to '', my_path do %> 
    <div></div> 
<% end %> 
+0

哇,我真不敢相信我不知道。/cry 更新: 剛剛在我的rails3 beta4應用程序中測試過它...需要稍作調整才能使其正常工作。基本上<%link_to my_path do%> ... <% end %> – 2010-06-19 01:05:45

+0

對,對不起。 link_to的''部分不應該在一個塊中存在。 Rails 3可能會在開始行中使用<%=而不是<%。 – Jarrod 2010-06-19 01:33:02

1

FYI:圍繞一個DIV錨是不是在HTML 4.01過渡合法的(但它是在HTML5?),所以要確保你使用正確的doc-在目標瀏覽器上鍵入並測試!

<head> 
<title>a</title> 
</head> 
<body> 
<div> 
<a href="www.google.com"> 
<div>test</div> 
</a> 
</div> 
</body> 
</html> 

您可以在W3C Validator運行這個並更改DOCTYPE以查看哪些模式(S),這是有效的。 (請確保指定的編碼以及擺脫警告:-)

+0

有趣,但這是一個鐵軌具體問題。 – 2010-06-19 07:40:18

+0

你也可以在div的前面加一個空錨點標籤。 – 2010-06-19 11:36:44

0

最糟糕的是:

<%= link_to(url, html_options = {}) do %> 
    # name 
<% end %> 
相關問題