📝
【Rails4→5の移行時に注意】render textはrender plainに置き換わりました
Rails 4のプロジェクトを引き継いてRails5でリプレースしているときにハマったのでメモ。
Rails 4系では動くコード
以下は、シンプルに「Hello,World!」 を返すコントローラです。
class SomeController < ApplicationController
def index
render text: "Hello,World!"
end
end
これが、Rails 5系だと正しく動かなくなります。
解決策:Rails 5系に移行するときは、render text: からrender plain: にする
You can send plain text - with no markup at all - back to the browser by using the :plain option to render:
Rails Guides
class SomeController < ApplicationController
def index
render plain: "Hello,World!"
end
end
これで解決。
Rails6系が出て久しいですが、残念ながらすべてのバージョンアップに追従できている現場は多くありません。なのでこの記事も有用であると思い投稿しました。(どうせ、4 -> 6とかあげようとしたときにも同様のハマりが発生すると思うので)
Discussion