2016-03-02 44 views
1

這應該可能比現在更容易。我只想在HTML段落元素中放置一個鏈接。如何在HAML中的文本字符串中放置一個鏈接?

%p{class: "answer"}="Please upload your data to this portal in text (tab-separated) format. Download our template #{raw(link_to 'here', '/templates/upload_template.xlsx')} for sample data and a description of each column." 

Rails正在編碼標籤信息。我不希望標籤被編碼。我希望他們成爲標籤。

回答

2

您可以使用interpolation directly in Haml,做這似乎是解決這個問題在這種情況下。

所以不是這樣:

%p= "Text with #{something_interpolated} in it." 

你可以做

%p Text with #{something_interpolated} in it. 

即你不需要=或引號,因爲你只是添加一個字符串。您不應該也需要使用raw

(另外,請注意,你可以做%p.answer設置class屬性,如果該值不被動態地設置時可以更清潔。)


爲什麼這是正在這裏逃脫是不同的問題。我預計這兩種情況(%p= "#{foo}"%p #{foo})的行爲方式相同。然而,經過一些研究,這種行爲似乎與Rails與Erb的行爲方式相匹配。

3

您可以使用多條線路的任何塊內,解決你的問題,我們將有這樣的事情:

%p{class: "answer"} 
    Please upload your data to this portal in text (tab-separated) format. Download our template 
    = link_to 'here', '/templates/upload_template.xlsx' 
    for sample data and a description of each column." 
+0

雖然我們在這,但我們可以鼓勵'p.answer'語法。比'%p {class:「answer」}'好得多 – froderik

相關問題