我已經開始了一些軌道的教程,發現一些視圖代碼塊都像差異 - %>和%在軌
<h1><%= @subject.name -%></h1>
和其他代碼塊>像
<h1><%= @subject.name %></h1>
有什麼區別 - %>和%>
如果你知道一些很好的語法參考,你可以指向我,這也會有所幫助。
我已經開始了一些軌道的教程,發現一些視圖代碼塊都像差異 - %>和%在軌
<h1><%= @subject.name -%></h1>
和其他代碼塊>像
<h1><%= @subject.name %></h1>
有什麼區別 - %>和%>
如果你知道一些很好的語法參考,你可以指向我,這也會有所幫助。
額外的短劃線使ERB在結束標記後不輸出換行符。有沒有在你的例子沒有任何區別,但如果你有這樣的事情:
<div>
<% if true -%>
Hi
<% end -%>
</div>
它會產生:
<div>
Hi
</div>
,而不是這樣的:
<div>
Hi
</div>
非常感謝!我首先找到了一個允許特殊字符的搜索引擎,然後搜索 - %>。這是顯示的第一頁。我使用了http://www.symbolhound.com/(我現在可能會經常使用它,因爲在Google上搜索特殊符號是不可能的)。 – 2012-05-04 18:10:08
確保在獨立ruby腳本中使用ERB將`trim_mode`傳遞給`ERB.new`時,例如`ERB.new('myfile.erb',nil,' - ')```-``是'trim_mode`,否則它不會接受破折號 – 2012-09-18 10:18:48
當我嘗試管道到` erb命令行工具。作爲@Koen。聲明的設置微調模式修復了問題,並且該命令可以設置它,即(`erb -T' - '`)。 – erran 2014-10-30 04:22:39
如果使用HAML而比再培訓局你可以做一些類似的小於或更多的符號比你的標籤後。
>
將刪除標籤周圍的任何空格,並且<
將刪除其中的任何空格。
.float-left<
%p
Lorem ipsum dolor sit amet
被編譯爲:
<div class="float-left"><p>
Lorem ipsum dolor sit amet
</p></div>
而且......
%left_tag
%inside>
%right_tag
被編譯爲:
<left_tag /><inside /><right_tag />
如果你不使用HAML這是絕對值得一試。
我很確定-
之前%>
不再需要,應該省略。
至少在Chrome中,使用-%>
或%>
生成的html看起來相同。
更新:此答案錯誤,請參閱https://stackoverflow.com/a/25626629/895245。
在Ruby 2中。1(不一定使用Rails),則-
移除一個換行符:
>
'-'
選擇使用它例子:
require 'erb'
ERB.new("<%= 'a' %>\nb").result == "a\nb" or raise
begin ERB.new("<%= 'a' -%>\nb").result; rescue SyntaxError ; else raise; end
ERB.new("<%= 'a' %>\nb" , nil, '-').result == "a\nb" or raise
ERB.new("<%= 'a' -%>\nb" , nil, '-').result == 'ab' or raise
ERB.new("<%= 'a' -%> \nb" , nil, '-').result == "a \nb" or raise
ERB.new("<%= 'a' -%>\n b" , nil, '-').result == 'a b' or raise
ERB.new("<%= 'a' -%>\n\nb", nil, '-').result == "a\nb" or raise
文件:http://ruby-doc.org/stdlib-2.1.1/libdoc/erb/rdoc/ERB.html
的Rails 4.1的文檔這在http://api.rubyonrails.org/classes/ActionView/Base.html,看來:
但是,Rails 4.1會刪除已記錄的尾部空白,而純ERB不會,因此可能會有其他差異。
此外,它並沒有刪除前文所述的換行符:它可能是一個文檔錯誤。在以下位置打開問題:https://github.com/rails/rails/issues/16766
在引用者之前詢問過此人。儘管我相信我們的版主知道他們在做什麼。 – Brettski 2014-09-03 16:51:49