2014-03-26 29 views
2

我與嵌入的Ruby如下表行:爲什麼我的嵌入式ruby字符串在html中輸出兩個字符串?

<tr class=<%= "image-carousel-show thumb-#{index}" %>> 

它創建這樣的:

<tr class="image-carousel-show" thumb-0=""> 

不過,我想thumb-0要在班上排的,還不如說是自己的屬性像現在一樣。

這是我希望它顯示爲什麼:

<tr class="image-carousel-show thumb-0"> 

我不知道爲什麼它這樣做,在ERB我擁有這一切作爲一個字符串,所以我不知道爲什麼它是不作爲兩個輸出。

回答

8

這不是由erb完成的,但它由瀏覽器修改,因爲這些參數不放在引號內。嘗試:

<tr class="<%= "image-carousel-show thumb-#{index}" %>"> 

此外絕對沒有兩個類都在erb內的意義。這將做同樣的事情,並且稍微更具可讀性。

<tr class="image-carousel-show thumb-<%= index %>"> 
4

您的ERB被編譯到HTML:

<tr class=image-carousel-show thumb-0> 

它得到解釋爲:

<tr class="image-carousel-show" thumb-0> 

要解決,你需要在你的擴張報價:

<tr class="<%= "image-carousel-show thumb-#{index}" %>"> 

但是,我會建議使用content_tag以避免句法混淆:

<%= content_tag :tr, class: "image-carousel-show thumb-#{index}" do %> 
    <%# tr contents %> 
<% end %> 
相關問題