htmlコードがあるhtml.erbファイルがあります。このルビーコードを挿入しました
<li <%= puts "class='active'" %>>Link</li>
しかし、Railsサーバーでコードを実行すると、class="active"
レンダリングされません。それはなぜですか、どうすれば修正できますか?基本的で基本的なものが欠けていますか?
htmlコードがあるhtml.erbファイルがあります。このルビーコードを挿入しました
<li <%= puts "class='active'" %>>Link</li>
しかし、Railsサーバーでコードを実行すると、class="active"
レンダリングされません。それはなぜですか、どうすれば修正できますか?基本的で基本的なものが欠けていますか?
プットは使用しないでください。これを使って:
<li <%= "class='active'" %>>Link</li>
puts
文字列をstdoutに出力し、を返しますnil
。そのため、クラスはレンダリングされません。
エスケープを回避するには、文字列の前にプレフィックスを付けますraw
<li <%= raw "class='active'" %>>Link</li>
または、これが本当にあなたのコードである場合(単純化などなし)、あなたはただ行うことができます
<li class='active'>Link</li>
puts
STDOUT、またはサーバーが実行されているコンソールにステートメントを出力します。ビューに挿入されることはなく、サーバーによって出力されるだけです。
ここでERBを評価するために、ステートメントはまったく必要ありません。あなたはこれを行うことができます:
<li <%= "class='active'" %>>Link</li>
Ruby on Railsビューガイドで、ERBテンプレート言語の詳細を確認してください。