「3ヶ月連続アウトプット」、1日目です。
今回は、Railsの「link_to」で「>」を実体参照しようとしてうまくいかなかったので調べてみました。
現象
sample.html.erb
<%= link_to "パスワードをお忘れの方はこちら >", "/path", class: "underline" %>
ブラウザ上
パスワードをお忘れの方はこちら #>
link_toで実体参照したところ、そのまま文字列として出力されてしまった。
ううむ。
解決方法
色々と探してみたところ、「html_safe」を対象文字列の後にメソッドチェーンしてあげることで解決しました。
sample.html.erb(修正後)
<%= link_to "パスワードをお忘れの方はこちら >".html_safe, "/path", class: "underline" %>
ブラウザ上
パスワードをお忘れの方はこちら #>
「html_safe」とは?
Stringクラスで用意されているメソッド。
文字列にエスケープ処理を加えたくない時に使用する。
後日談、というか今回のオチ
調べていて気づいてしまったのですが、そもそもこれ実体参照する必要なくないか・・・?
どうやらコントローラーからビューへ文字列を引っ張ってくる際によく使うみたい。
多少時間を使ってしまったけど、「まぁ知れたから今後役に立つでしょ!」とポジティブに考えておこう、うん!