4
1

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 5 years have passed since last update.

Railsでslimを使う際はインデントに気をつけましょうって話

Posted at

いきなりですが、みなさんはrailsのテンプレートエンジンに何を使っていますか?
僕はslimです。
公式ドキュメントはこちら

こちらのslimは<>や閉じタグが省略できてとてもシンプルに書くことができるんですよ。
ただ今回つまづいたところがあったので同じようにつまづいた人のために記事にしておこうと思いました。

#この記事で話すこと、しないこと
##話すこと
slimでつまづいたこと。
解決法
##話さないこと
slimの導入手順
slimの細かい記法
読者の皆さんはslimが書ける前提で進めていきます。

#つまづいた事象
僕がつまづいたのは下記のようなコードです。
もしAならhogeを表示すると言ったものです。

-if A
= hoge

さてお気付きのかたもいると思いますが、こちらif文が機能しません。

なぜなら上記のコードは下記のコードと同じだからです。

<% if A %>
<% end %>
<%= hoge %>

え、ならslimでif文書けないじゃんとお思いの方もいると思いますが大丈夫です。
解決方法はあります。

#解決方法
= hogeをネストさせるだけです。

-if A
  = hoge

これだけでif文が機能するようになります。

#まとめ
slimはif文、each文などの閉じタグがなく、インデントで判断するので上記のような事象が発生するのですね。
しっかりネストさせないと「お、ネストされてない。ということはif文はネストされているこの行までだな」と、slimさんに判断されちゃう訳なんですよ。
ということで、みなさんslimで書く際はerbの時以上にインデントに気をつけましょう。

4
1
0

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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?