我一直在努力ROR .. 我是很新的ROR ..Rails的嵌入語法疑問
誰能告訴我是什麼<%=%之間的差額>和<%= H%>
爲什麼我們在這裏?
在某些情況下,我已經看到了一下T^h ..
請澄清我
我一直在努力ROR .. 我是很新的ROR ..Rails的嵌入語法疑問
誰能告訴我是什麼<%=%之間的差額>和<%= H%>
爲什麼我們在這裏?
在某些情況下,我已經看到了一下T^h ..
請澄清我
的<%=h %>
語法轉義字符,否則會弄亂你的頁面(例如「&」)。它實際上是一個稱爲'h'的輔助方法。所以:
<%=h "Ann & Bill" %>
將擴大到Ann & Bill
而
<%= "Ann & Bill" %>
將擴大到Ann & Bill
,這可能不是你在你的HTML想要的東西。
<%=
和%>
之間的所有內容都被評估爲Ruby代碼,並將生成的字符串插入到文檔中(實際上是ERb,它可以用於任意文檔,而不僅僅是HTML)。在這種情況下,它會調用一個簡單的方法h
,它轉義了它的參數。所以我猜你看到的更像是<%=h @somevar%>
。所以@somevar
的內容被方法h
轉義,並且返回字符串被插入到這個整個表達式的地方。
存在其他ERb的語法是<% ... %>
評估Ruby代碼但不插入結果到文檔中,然後有也<% ... -%>
和<%= ... -%>
抑制隨後的換行,從而避免了所呈現的文檔中的間隙。
現在Rails 3已經發布了,請注意,從這裏開始的默認行爲是自動轉義<%=%>標記中的所有內容。因此,XSS(跨站點腳本)保護始終處於開啓狀態,因此使用冗餘。這可能會咬你,如果/當你從Rails 2升級你的應用程序。
這個Railscast(http://railscasts.com/episodes/204-xss-protection-in-rails-3)給出了上面的一個很好的入門。
如果你想這種行爲在Rails 2.3的應用程序,你可以使用http://github.com/rails/rails_xss(用於2.3.8)或http://github.com/NZKoz/rails_xss(用於2.3.5)
你可能想引號添加到您的字符串,還是你意思是二元 - 常量Ann和Bill? :-) – DarkDust 2010-08-31 08:50:24