2011-03-19 113 views

回答

26

<% %>將評估Ruby代碼包含

<%= %>將評估和渲染代碼包含

所以包含模板:

Hello <% user.name %> how are you? 

...將輸出:

Hello how are you 

... while ...

Hello <%= user.name %> how are you? 

...將輸出:

Hello fred how are you 

<% %>是常用的迭代器

<ul> 
    <% @users.each do |user| %> 
    <li><%= user.name %></li> 
    <% end %> 
</ul> 
+0

終於找到了,花了我10秒知道這是幹什麼的,但花了1個小時才找到這個答案。由於符號搜索。順便說一句,你知道這個符號的rails官方文檔在哪裏嗎? – Yeo 2013-12-17 08:04:50

2

<%%>僅評估它們之間的紅寶石代碼,而<%=%>輸出評估結果。不要混淆雖然

這將輸出「foo」的訪問日誌和nil到瀏覽器輸出

<%= puts "foo" %> 

<%= "foo" %> 

將輸出「foo」的字符串到瀏覽器。

+0

你錯過了一個'='在第一個語句。 '%puts「foo」%>'不會向瀏覽器輸出'nil'。它會在服務器控制檯輸出'foo'並記錄日誌。 '<%= puts「foo」%>'是你的意圖。 – rubyprince 2011-03-19 10:12:06

+0

對,對不起。 – Eimantas 2011-03-19 10:24:31

1

<%= %>打印代碼語句的返回值到瀏覽器中,<% %>只是執行代碼。

相關問題

 相關問題