読者です 読者をやめる 読者になる 読者になる

コンパイラかく語りき

文系新卒プログラマーのメモ

slimで変数内の文字列を展開する

Slim

slimで初めて変数を使ったのでメモ。

 

Railsでhtml.erbからhtml.slimへの書き換えを行っていました。

そこでこんな1文がありました。

f:id:chuck0523:20151030233736p:plain

 

書き換えに苦戦したのは、class名の部分。

class="alert alert-<%= key %>"

 

※Bootstrapを使っています。

 

ここでクラス名を2つ定義しています。

alertとalert-<%= key %>です。後者は、ハイフン以下が変数になっています。

erbでは<%= %>として変数の中身を出力します。

要は、2つ目のクラスは動的に指定したいわけですね。

 

これをSlim的にはどう書くのかなと。

 

ちなみに、<%= %>はslimでは=(イコール)になります。

f:id:chuck0523:20151030234057p:plain

 

なのでこうかなと。

f:id:chuck0523:20151030234237p:plain

 

ローカルで確認すると…

f:id:chuck0523:20151030234308p:plain

エラーでした。

 

 

で、試行錯誤した結果こちらに。

f:id:chuck0523:20151030234600p:plain

変数展開は、#{key}とするようです。

ただ、これだとクラス定義が分散していてなんか気持ち悪い…。

せっかくslimを使っているんだし、もっと上手い方法がありそうな気がするのですが…。

 

ですが、今回は時間切れになってしまったのでこれにて。

 

参考:

blogged.e2esound.com