2016-11-08 106 views
2

我無法在任何地方找到它,但在我正在使用的項目中。 它不能像<%=(我試圖改變)那樣工作,但我無法理解它們之間的區別。<%% =在Ruby on Rails中的含義是什麼?

<span class="option-content" placeholder="<%=t('pages.edit.option')%>"> 
    <%%= content %> 
</span> 
+1

可以提供完整的表達? – Aleksey

+0

這夠了嗎? – Simoroshka

+2

你確定它不是一個錯字 - 如果它只有一個,它會給出什麼樣的輸出。% – mjwatts

回答

1

總之代替,ERb的流程將百分之二的分數標記爲百分之一。


它看起來像你使用再培訓局一層模板來生成ERb模板中的另一層。

ERb的所述的第一層不需要一個叫做content變量,只是t方法:

<span class="option-content" placeholder="<%=t('pages.edit.option')%>"> 
    <%%= content %> 
</span> 

即第一層被渲染以產生第二層:

<span class="option-content" placeholder="Edit"> 
    <%= content %> 
</span> 

正如你所看到的那樣,這也是一個ERb模板。我想到的是別的東西,後來,採取的是第二該局及使用它來呈現類似:

<span class="option-content" placeholder="Edit"> 
    Hello, world. 
</span> 
+0

我會接受這個答案,而不是,謝謝。 – Simoroshka

3

該ERB停靠here

<% Ruby code -- inline with output %> 
<%= Ruby expression -- replace with result %> 
<%# comment -- ignored -- useful in testing %> 
% a line of Ruby code -- treated as <% line %> (optional -- see ERB.new) 
%% replaced with % if first thing on a line and % processing is used 
<%% or %%> -- replace with <% or %> respectively 

這意味着

<%%= content %> 

將將與

<%= value of content %> 
+0

中創建<%= content%>,所以不是'<%% ='實際上應該是'<%%'生成'<% '? – mjwatts

+1

將<%% content %%>'替換爲<%value of content%>',<%% = content %%>'將替換爲<%= value of content%>' –

+0

謝謝,它澄清了一些事情! (我仍然需要明白爲什麼它是這樣的項目,但它是一個不同的問題) – Simoroshka