2011-04-17 49 views
3

我使用Ruby on Rails的3.我曾試圖在<%添加#COMMENT =%>,並且事實證明,這不是有效的...和錯誤提出了...我的代碼是:爲什麼#comment語法不允許在erb的<%= %>?

<%= @page_title || 'Pragmatic Bookshelf' #magic @page_title; a if a is true, else b%> 

將#comment放入<%%>似乎沒有等號。我的問題是:爲什麼是這樣?

另外,你如何評論<%=%>?

謝謝。

回答

6

一個#comment運行到行的結束,但如果我們重寫

<%= @page_title || 'Pragmatic Bookshelf' #magic @page_title; a if a is true, else b%> 

puts(@page_title || 'Pragmatic Bookshelf' #magic @page_title; a if a is true, else b) 

使用=被重寫爲一個函數調用,就像puts()

很明顯,右括號)是註釋的一部分,因此該語句不能被解析d正確。

要解決這個問題,我們可以只使用一個單獨的ERB註釋塊,像這樣:

<%= @page_title || 'Pragmatic Bookshelf' %><%# magic @page_title; a if a is true, else b%> 

最後要注意,使用||運營商合併零變量是一種很常見的Ruby成語,和根本不需要評論。正如史蒂夫麥康奈爾在代碼完成說,評論應該解釋爲什麼做了什麼,而不是如何做。

+0

哦,謝謝最後的注意。但我的情況是,我只是開始學習軌道1天,只有當我寫這個代碼...我保證我不會這樣做以後... :) – draw 2011-04-17 05:29:57

+0

另一個問題:爲什麼<%concat(csrf_meta_tag)#aa% >無效,而<%javascript_include_tag:defaults#abc%>有效? – draw 2011-04-17 21:32:38

+0

'concat'是否可能未定義?通常它被稱爲一個字符串,比如'「Hello」.concat(「,world!」)' – 2011-04-18 00:11:40

相關問題