Ruby on Railsのコントローラのrenderメソッドの使い方を説明します。renderはViewの表示の制御を行うためのメソッドです。
🍄 ビューの表示
renderを省略する
Railsのコントローラでrenderを省略すると「app/views/コントローラ名/アクション名.html.erb」を使います。
# app/controllers/articles_controller.rb |
他のアクションのビューを表示する
render アクション名で同じコントローラ内の別のアクションのビューを表示できます。
# newアクションのviewを表示 |
ビューのパスを指定して表示
ビューのパスを指定して表示することもできます。
# app/views/statics/home.html.erb を表示 |
🏀 JSONを返す
renderにjsonオプションを付けるとJSONとしてレスポンスを返します。指定したオブジェクトにto_jsonオブジェクトがあれば、自動でJSONに返却します。
def index |
出力内容の簡単な制御は「as_jsonメソッド」を活用するとはかどります。より複雑なjsonの出力フォーマットの指定はRailsに標準で組み込まれているRubyGem「jbuilder」がお勧めです。
🐯 文字列を返す
renderにplainオプションを指定することで文字列を直接表示できます。(ビューを省略できます)
render plain: 'Hello, Ruby world!' |

😎 ステータスコードのみ返す
APIなどでステータスコードのみ伝える場合はheadメソッドを使います。
# リクエストが正常に処理された |
🐞 Viewの表示を文字列として取得する
ビューをrenderした結果を文字列として取得する場合は、render_to_stringメソッドを使います。
puts render_to_string action: :index |
