2014-04-05 61 views
0

下面的代碼是一個渲染錯誤: 語法錯誤,意想不到的keyword_ensure,期待$結束

<div id="Carousel"> 
    <% results = @client.search("Twitter", :result_type => "mixed").take(3).to_a %> 
    <div class="carousel-inner"> 
     <div class="active item"> 
      <p><%= "results[0].text"%></p> 
     </div> 
     <div class="item">     
      <p><%= "results[1].text"%></p> 
     </div> 
     <div class="item"> 
      <p><%= "results[2].text"%></p> 
     </div> 
    </div> 
    <% end %> 
</div> 

老實說,我不知道爲什麼會這樣。我試過故障排除,但是我沒有辦法。我相信這是一個小錯誤,但我無法弄清楚。任何幫助將非常感激。

+4

只需刪除'<% end %>'這一行。這不是必需的。 – iltempo

+0

它的工作!非常感謝你。如果你不介意,你能解釋爲什麼它不是必需的嗎?我雖然在那個包括ERB的地方我不得不放置一個<% end %>。 –

回答

2

由於iltempo在評論中提及了這一點:remove the <% end %> line.

If you don't mind, can you explain why it is not needed?

因爲你在第2行做的是不是塊,你只要設置一個變量那裏,你以後使用。塊的例子:

<% User.all.each do |u| %> 
<%= u.email %> 
<% end %> 

<%= link_to user do %> 
<%= u.email %> 
<% end %> 
1

<%%>之間的東西是紅寶石代碼。

<%= %>將結果插入到HTML,因此,例如

<% x = 3 %>將設置紅寶石變量x 3,但 <%= x = 3 %>將設置紅寶石變量x爲3,也將值3到HTML

如果你看一下你在Ruby代碼而言它是什麼,這樣的事情:

results = @client.search("Twitter", :result_type => "mixed").take(3).to_a 
"results[0].text" 
"results[1].text" 
"results[2].text" 
end 

如果你看一下,你會發現「結束」聲明我不合適。 我也認爲你可能不想在結果陳述周圍輸入「」

相關問題