2014-01-17 41 views
2

我正在使用基礎4.3.2的Rails應用程序,它使用布爾數據標記來定位元素。在Rails鏈接助手中沒有值的數據屬性

如果我想產生類似:

<a href="#" data-section-title>Section 2</a> 

什麼是我的Rails輔助函數是什麼樣子?

<%= link_to "Section 2", "#", :"data-section-title" %> 

...不起作用,從Rails得到語法錯誤。

+0

,你需要把裏面的link_to一個'<%=',例如'<%= link_to ...%>'。 link_to的第三個參數需要是選項的散列,所以你需要說':「data-section-title」=> something'。 – sampierson

回答

0
= link_to "Section 2", "#", :"data-section-title" => true 
+1

嗨克里斯!你的解決方案產生:'Section 2'。根據[這個答案](http://stackoverflow.com/questions/20308537/rails-add-html-attribute-without-setting-a-value),沒有辦法產生沒有使用rails助手值的屬性。 Logan你可以手動編碼HTML,如果這是你真正想要的,否則只需使用「」或true。 – sampierson

+0

@sampierson感謝您的鏈接,這就是我一直在尋找的 –

1
<%= link_to "Section 2", "#", data: {section_title: true } %> 

會生成以下代碼:

<a href="#" data-section-title="true">Section 2</a> 

這應該工作。

+0

是一個字符串「true」與布爾值是一樣的嗎? –

+0

是的,它會試一試:) 沒有辦法與鐵路助手產生沒有價值的數據,但你會得到相同的結果,你正在尋找什麼。 – goma

+0

你可以,但沒有很好解釋(或者至少我沒有在文檔中找到它)。您需要爲HTML屬性分配一個空白字符串。 –

0

要如果您正在使用ERB做到這一點,你需要分配給數據屬性爲空字符串,如

<%= link_to "Section 2", "#", data: {"section-title": "" } %> 
+1

它導致'data-section-title =「」'(Rails 4.2) – kolen

+1

@kolen它可能是一個在Rails 4.3中添加的功能。你可以測試一下,在最新的Rails版本中,分配一個空白字符串產生一個無值數據屬性 –

+0

順便說一句,具有空字符串值和沒有值的屬性是[相當於HTML](http://w3c.github.io/html/ infrastructure.html#sec-boolean-attributes)(不確定在生成的DOM中是否完全等價) – kolen