背景
controller.rbにhtmlを埋め込んでもhtmlの下のようにソースコードが表示されてしまう
結論
render html: msg.html_safe
このように、html_safeを入れること
成功例
全体ソースコード
改善後sample
class HelloController < ApplicationController
def index
#render plain:"Hello, This is Rails sample page!"
msg = '
<html>
<body>
<h1>Sample Page</h1>
<p>this is sample page!</p>
</body>
</html>
'
render html: msg.html_safe
end
end
原因
Railsのrenderは基本的に、htmlのタグをすべてエスケープするみたい。
その理由としては、クロスサイトスクリプト攻撃のような外部から悪意のあるコードを受け取っても実行しないようにするためと思われる。