LoginSignup
0
0

More than 1 year has passed since last update.

slim タグの中に変数を入れるコード

Last updated at Posted at 2021-11-04

開発環境

ruby 2.6.5
slim-rails

erb では割と見る

<div class="comment-content" id ="this_comment_<%= comment.id %>"></div>

みたいなコードを slim で書くにはどうすればいいか


.comment-content#this_comment_=comment.id

まずは愚直に slim の文法に沿って書いてみる
するとうまく動作しない

ブラウザ検証ツールを見てみると

<div #this_comment_="3" class="comment-content"></div>

と変換される

変数展開はされてるんだけどされかたがおかしい

本来は

<div #this_comment_3 class="comment-content"></div>

となってほしいところ


.comment-content #this_comment_comment.id

変数展開されるはわかったから
そのまま comment.id を入れてみる

すると

<div class="comment-content">#this_comment_comment.id</div>

id ではなく 要素の中身として出力されてしまった


.comment-content #="this_comment_#{comment.id}"

明示的に = ってすることもできるみたい
で、文字列を入れると思わせて変数展開をさせる

すると

<div #="this_comment_4" class="comment-content"></div>

ちゃんと出力された

ただ # がid に変化されてない

なので

.comment-content id="this_comment_#{comment.id}"

ってしてやると

<div id="this_comment_4" class="comment-content"></div>

きれいにいった

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0