html_safe を使おうとしたけど、非推奨だったので sanitize を使おう (Rails5)
Ruby Ruby on Rails
Published: 2019-10-14

やったこと

html_safe を使ってみます。

確認環境

$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]

$ rails --version
Rails 5.2.3

調査

ファイルを準備します。

app/controllers/tasks_controller.rb

class TasksController < ApplicationController

  def index
    @message = '<form><a href="#">ddd</a><br>ddd2</form>'
  end
end

app/views/tasks/index.html.erb

<%= @message %>
<hr>
<%= @message.html_safe %>
<hr>
<%= sanitize @message %>

出力結果

&lt;form&gt;&lt;a href="#"&gt;ddd&lt;/a&gt;&lt;br&gt;ddd2&lt;/form&gt;
<hr>

<form><a href="#">ddd</a><br>ddd2</form>
<hr>

<a href="#">ddd</a>
<br>
ddd2

html_safe より、sanitize が推奨されているようです。

form タグが表示されなくなっていることが分かります。

参考