railsの埋め込みruby「<%= %>」の「=」にご用心。

こんにちは!Masaです。

書きたいことはタイトルのままですけど、

railsの埋め込みruby「<%= %>」の「=」にご用心。

ということです。

「=」の有無による差ってなに?

railsのビューでよく使う埋め込みRuby

「<%=%>」と「<% %>」

前者はビューにタグの中身を描画するのに対して、後者は描画しません。

その特性を忘れないようにして書かないと、私のようにやられます。

「=」でミスる例

私がミスって書いたコードがこちら。

<%= @failures.each do |failure| %>

コントローラーの方でwhereメソッドを使って、複数レコードを格納したインスタンス変数@failureに対してeachメソッドを使っています。

問題は「=」が含まれていることです。

こいつが含まれているせいで、@failuresに格納されている内容が全て描画されるという現象が起こります。

思いっきり無骨な素のテキストで変数の中身が全部描画されて「ナンジャコリャ!?」ってなりました。

正しいのはこちら。

<% @failures.each do |failure| %>

「=」をとってやればもちろん消えます。

恥を晒すと、「=」のせいって気づかなくて3時間くらいハマってました。。

デバッグする際に、「どこでエラーが起きているのか」という問いに対する仮説の筋が悪いとこうなりますね。

精進します。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする