約束の地

キャロの想い出

Rails のコントローラで render text: を指定したらエラーが出る場合

render text:でエラーになる

自らの恥を晒し続けている当ブログですが……。

Railsのコントローラにて、コントローラから直接テキストを表示したい場合があるかと思います*1。その際に、以下の書き方だとTemplate is missing(Missing template)のエラーになります。

class FooController < ApplicationController
  def index
    render text: "Hello, Rails!"
  end
end

render text:ではなく、render plain:と書けば OK です。

class FooController < ApplicationController
  def index
    render plain: "Hello, Rails!"
  end
end

参考(例によって答えそのもの、感謝)

RubyおよびRailsのバージョン

Rails version: 5.1.1
Ruby version: 2.4.1 (x86_64-linux)

見苦しい言い訳

いや、こちらの本に書いてあったことをそのままやっただけなんですよ……。そしてまたこちらの本ではちゃんとplain:に変更されています。つまりバージョンアップこわい。

*1:主にデバッグ時だとは思いますが

Powered by はてなブログ