0

htmlコードがあるhtml.erbファイルがあります。このルビーコードを挿入しました

<li <%= puts "class='active'" %>>Link</li>

しかし、Railsサーバーでコードを実行すると、class="active"レンダリングされません。それはなぜですか、どうすれば修正できますか?基本的で基本的なものが欠けていますか?

4

2 に答える 2

3

プットは使用しないでください。これを使って:

<li <%= "class='active'" %>>Link</li>

puts文字列をstdoutに出力し、を返しますnil。そのため、クラスはレンダリングされません。

アップデート

エスケープを回避するには、文字列の前にプレフィックスを付けますraw

<li <%= raw "class='active'" %>>Link</li>

または、これが本当にあなたのコードである場合(単純化などなし)、あなたはただ行うことができます

<li class='active'>Link</li>
于 2012-11-13T20:26:16.497 に答える
3

putsSTDOUT、またはサーバーが実行されているコンソールにステートメントを出力します。ビューに挿入されることはなく、サーバーによって出力されるだけです。

ここでERBを評価するために、ステートメントはまったく必要ありません。あなたはこれを行うことができます:

<li <%= "class='active'" %>>Link</li>

Ruby on Railsビューガイドで、ERBテンプレート言語の詳細を確認してください。

于 2012-11-13T20:26:58.927 に答える