2009-05-24 6 views
2

は< PRE>なぜこのコメントはRuby on Railsでコンパイルエラーを生成しますか?

<%= h @stories.inspect %> 

内に表示ラインがあり、出力が長すぎたので、私は(最初の行をコメントアウト)

<%= #h @stories.inspect %> 

<% @stories.each do |s| %> 
    <%= h s.inspect %> 
<% end %> 

にそれを変更しました。今のコードは言って...コンパイルに失敗します

コンパイルエラー
/Users/winterheat/ror/shov2/app/views/stories/index.html.erb:13:構文エラー、予期しないkENSURE、期待 " 「)
/Users/winterheat/ror/shov2/app/views/stories/index.html.erb:15:構文エラー、予期しないkEND、期待 ')'

と私は完全にそのコメント行を削除した場合、コードが機能します。いくつかの本では、ERBのコードをそのようにコメントすることができると言われています。

更新:は面白い、私は

<% #h @stories.inspect %> 

に変更した場合、それは罰金コンパイルします...ので、結果タグの表示<% =%>は、コメントを好きではない、それはそうです。

答えて

6

考える<%のエラーにつながります。表現がない?構文エラー。

を啓発することができる<% =が実際ERB源で処理する方法ダウン追跡

output << 

output << @stories.inspect 

を考えます。私がRailsを使い始めたときには、それに見合った価値があると感じました。

+0

"put" "hello"とputsの両方をエラーなしで処理できる場合、なぜ<%=#comment%>ですか? –

+0

これはputs固有の実装の詳細なので、ERBとは何の関係もありません。 – Chuck

3

<%=のあとにRuby式を置き、resultに置き換えてください。意味は「出力ストリームに、この式の値を追加します」と

全く発現は=

1

使用

<% #h @stories.inspect %> 

代わりの

<%= #h @stories.inspect %> 

にルビー/ Railsので<%= %>タグをコメントする

<%= (I expect something that I can convert to string) %> 
4

適切な方法が<%#= %>あるので...コメント記号を配置等号の前にその後、すべてが魅力的に機能します。

関連する問題