0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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')

#参考サイト
https://railsguides.jp/layouts_and_rendering.html

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?