Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

erbからslimに移行する際はblockのチェックを忘れずに

erbからslimに移行する際の注意点です。

erb2slimを使えば、簡単に変換できます。
が、開発者の意図までは酌んでくれません。
例えば、blockを使ったスクリプトを書いていると意図せずクラッシュする可能性があります。

具体例

<%= form_tag :hoge, :id => :piyo do %>
<%= hidden_field_tag :foo, @user.id %>
<%= hidden_field_tag :bar %>
<% end %>
<% end %>

と書いていると、
以下のようにご丁寧にも揃えてくれます。

= form_tag(:hoge, :id => :piyo) do
= hidden_field_tag :foo, @user.id
= hidden_field_tag :bar)

slimはインデントで入れ子を表現するので、これではblockが動きません。
というわけで、自力でインデントを揃えてあげる必要があります。

= form_tag(:hoge, :id => :piyo) do
  = hidden_field_tag :foo, @user.id
  = hidden_field_tag :bar)

余談ですが、引数がないならdoをつけなくても良いようです。
分からない人が見ると混乱するだけなので、あまりオススメしませんが……。

と、まぁ若干面倒くさい事もありますが
slimへの移行はそれを補うだけのリターンがあります。

erbとの共存もできるので、少しずつ移行していくのも手かと思います。
まだの方は、是非!