🍎Railsのformに絵文字を表示する🎉
"文字列".html_safeで表示できる
HTMLで絵文字を表示したい場合、「HTML Entity」や「実体参照」と言われる形式で記述すれば普通は表示される。
😎 ...... 😎
しかしRailsのformタグ内では素直に表示してくれず、実体参照はただの文字列として認識されてしまう。
例として次のformを見てみよう。
<%= form_with url: search_path, method: :get do |f| %> <%= f.text_field :keywords, placeholder: "Search", class: "form-control" %> <%= f.submit value="🔍", class: "btn btn-default" %> <% end %>
このフォームは検索欄を表している。以下の部分で検索ボタンに虫めがねの絵文字「🔍」を利用しているが、実はこの書き方では「🔍」と表示されてしまう。
<%= f.submit value="🔍", class: "btn btn-default" %>
そこでhtml_safeメソッドを利用する。
<%= f.submit value="🔍".html_safe, class: "btn btn-default" %>
これでRailsのHTMLの特殊文字に対するエスケープ処理がスキップされ、絵文字として出力されるようになる。