こんにちは。たなか(@tanaka_ricecake)です。
Ruby on Railsを中心に、プログラミング関連の記事をあげている当ブログですが、Haml関連の記事が増えてきたのでまとめてみようと思います。
もくじ
Haml とは
Hamlは、Webドキュメントにインラインコードを書かずに、HTMLをきれいにするように設計されたテンプレートシステムです。
Hamlを利用することで、HTMLを簡易的に記述することができます。Railsでの開発では使われている現場も多いかと思います。
最初は見慣れないお作法に引っかかることかと思いますが、以下ではあるあるな引っかかりポイントを解消している記事を紹介します。
Hamlをerbに変換する一番簡単な方法
まずは見慣れないHamlを解読するために役立つ、変換ツールのご紹介です。
- Hamlをerbに変換するサイト「haml2erb」
- HTMLをHamlに変換するサイト「Convert HTML to HAML」
上記2つを利用することで、まずは見慣れた記述に落とし込みつつ、やりたいことに沿って修正していけばOKですね。
Hamlの中でbyebugを使う
viewに適切にデータが行き渡っているか確認したい時など、html.erbに<%= byebug =%>
と記述したいケースがあります。
じゃあそれ、hamlの時はどうやって書くの? という疑問を解消しています。
Hamlのビューでbyebugしたいのに、xss_mods.rbで止まってしまう
「Hamlの中でbyebugを使う」にも関連しますが、ビューでデバッグしているはずなのに、haml/helpers/xss_mods.rb
で引っかかってしまい、欲しいデータが見えない!という問題に躓きました。
xss_mods.rbはhamlが持つhelpersファイルの一つで、ビューの読みこみの際に処理が通るというものです。
先の記事と読み合わせることでHaml上でのデバッグについては困らなくなります。
Hamlの中でscriptタグを使う方法
通常htmlタグの中にはscriptタグを埋め込むことができますが、Hamlではどう書くの?という疑問にお答えしています。
この辺はお作法なので、記事見たら一撃ですね。
Hamlの中でeach doを使う方法
こちらもお作法系。
Hamlの中でeach doの繰り返し処理を行いたいけど、どう書いたらいいかわからない!という疑問にお答えします。
ActionView Template::Error (Got “elsif” with no preceding “if”)でエラー
【Haml】ActionView Template::Error (Got “elsif” with no preceding “if”)でエラー【解消】
いささかニッチな記事ですが、Hamlを記述して開発を進める中で、以下のようなエラーに遭遇しました。
Completed 500 Internal Server Error in 222ms (ActiveRecord: 2.9ms)
ActionView::Template::Error (Got "elsif" with no preceding "if"):
上記の解消方法について解説しています。
同じ症状でお悩みの方の参考になれば幸いです。
Haml記事 まとめ
ということで今回はHamlに関するtipsやハマったエラーの解消について記事をまとめてみました。
お作法が分かれば作業進められるはずなので、とにもかくにも慣れることがHaml攻略の近道ですね。
デザインを外部に委託したりする場合にデザイナーさんとやりとりしづらかったりというデメリットもあるHamlですが、身に着けることで素早く、かつ少ない記述でViewを書けるようになります。
上記のHaml記事群が、あなたのHaml学習に役立てば幸いです。
今回はここまで。