LoginSignup
0
0

More than 3 years have passed since last update.

[Rails] redirect_toとrenderメソッドの違いとrenderメソッドの出力方法について色々

Posted at

この記事ではmacOS Catalina10.15.6にインストールしたRuby 2.6.5を使っています。

redirect_toメソッド

  • redirect_to → ルーティング → コントローラー → ビューの順番で動きます。
  • 新しいリクエストが送信された時と同じ経路ですね。
  • 元のインスタンス変数の値が上書きされます。
redirect_to リダイレクト先のパス

renderメソッド

  • render → ビューの順番で動きます。
  • 新しいリクエストはなく、そのままビューファイルに直行です。
  • コントローラーのアクションを通らないのでインスタンス変数は上書きされません。
  • フォームに入力した情報を保持したままビューファイルに戻ってくれます。
render :アクション名

redirect_toとrenderの違い

ルーティングとコントローラーを通って情報が更新されるかどうかです。

renderメソッドの使い方色々

上記の使い方意外にもrenderではい様々なビューを出力できます。

別のコントローラのアクションテンプレートを出力する

  • renderメソッドで行うことができます。
  • 以下のようにapp/viewsを起点とするパスを指定するとビューファイルを出力できます。
render "items/show"

任意のファイルを出力する

  • 絶対パスを用いることでアプリケーションディレクトリ外のファイルを出力できます。
render "/Users/k/projects/test/app/views/books/index.html.erb"

テキストを出力

  • :plainオプションでテキストをそのまま出力します。
  • :htmlオプションでHTML文字列を出力します。
render plain: "text"
render html: helpers.tag('Hello')

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0