こんにちは!Masaです。
書きたいことはタイトルのままですけど、
railsの埋め込みruby「<%= %>」の「=」にご用心。
ということです。
「=」の有無による差ってなに?
railsのビューでよく使う埋め込みRuby
「<%=%>」と「<% %>」
前者はビューにタグの中身を描画するのに対して、後者は描画しません。
その特性を忘れないようにして書かないと、私のようにやられます。
「=」でミスる例
私がミスって書いたコードがこちら。
<%= @failures.each do |failure| %>
コントローラーの方でwhereメソッドを使って、複数レコードを格納したインスタンス変数@failureに対してeachメソッドを使っています。
問題は「=」が含まれていることです。
こいつが含まれているせいで、@failuresに格納されている内容が全て描画されるという現象が起こります。
思いっきり無骨な素のテキストで変数の中身が全部描画されて「ナンジャコリャ!?」ってなりました。
正しいのはこちら。
<% @failures.each do |failure| %>
「=」をとってやればもちろん消えます。
恥を晒すと、「=」のせいって気づかなくて3時間くらいハマってました。。
デバッグする際に、「どこでエラーが起きているのか」という問いに対する仮説の筋が悪いとこうなりますね。
精進します。