2014-07-12 198 views
-1

我的.erb文件不會將<%= %>內的代碼作爲ruby代碼執行。例如:: <%= puts "almost"%>,渲染時只是<%= puts "almost"%>。 erb引擎甚至不處理任何東西。這意味着<%=%>內沒有任何東西正在處理。任何幫助將不勝感激。Ruby on rails .erb文件

+0

嘗試'<%= 「差不多」 %>'如果你想'almost'作爲輸出 – Pavan

+0

你的意思是你呈現的HTML將字面上包含' <%= puts「幾乎」%>'好像erb引擎什麼也沒做? –

+1

您需要提供更多信息;如果它精確地呈現「<%= puts」幾乎是「%>',那麼就會出現一些錯誤。請注意,寫入'stdout',雖然當然是一件有效的事情,但在視圖模板中幾乎不需要。 –

回答

-1

任何內部<%%>將被評估爲紅寶石代碼,以及任何內部<%=%>將outputed爲html。所以當你做<%=把「幾乎」%>它直接輸出爲HTML。你可以解決這個使用

<% puts "almost" %> 

<%= "almost" %>. 
+3

否; '<%= puts「幾乎是」%>'將呈現'puts'的返回值。所有'<%= %>'都會輸出評估其中的Ruby代碼的結果。在你的例子中,'「almost」'是一個字符串,所以這就是呈現給客戶端的東西。評估內容:您可以如何使用它來呈現變量的輸出,輔助方法等。 –

0

您正在混淆erb表達式和Ruby代碼。使用<% %>可以執行任意的Ruby代碼。

<% puts "almost" %> 
+2

'<%= %>'中的代碼仍將被評估;這裏的問題或者是(a)它不是由ERb在* all *處理的,或者(b)他們想要在*客戶端*上幾乎呈現的,或者其他的。這個演講很難說。 –