0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?