makoラボ

日常や勉強会や技術ネタ

DBに保存したERB形式のコードをHamlで展開する

最近、.erb形式のファイルから.hamlに変換していってるのですが、その中で一つハマったことがあったのでメモ。

元のerbファイル

<%= raw ERB.new(@blog.content).result(binding) %>

このようにDBなどからERB形式のコードをviewに展開しているコードがあったとします。

単純にhaml形式に変換する

= raw ERB.new(blog.content).result(binding) 

単純にhaml形式のコードに変換するとこうなります。 が!画面を表示すると画面が崩れてましたorz

何故か他のhamlで書いてるコードが全くhtmlとして出力されていない状況。。。

:erbフィルターで記述する

:erb
  <%= raw ERB.new(@blog.content).result(binding) %>

:erbフィルターでerbそのままで記述すると上手く出力されました。

単純にhamlの中にERB形式のコードを無理やり展開したのでおかしくなってたのかな?