1
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?

redirectとrenderの違い

Last updated at Posted at 2024-11-23

redirect_toとrenderの使い方の違い

この記事は私自身の整理のため記入します。

1.redirect_toの種類

1-1.redirect_to "URL"
redirect_toの次にURLを使用する。
redirect_to("/sample/#{@data.id}/sample")

URLで直接指定する。
相対パス(..[1っ個上の階層]など)でも可。
#{@data.id}はdataテーブルのidカラムを次の処理などに渡す。(idの内容を引き継ぐ)

routes.rb
post "sample/:id/sample" => "controller名#action名"

こうすることでdata.idを引き継げる。

postとgetの違い
postは指定したページに飛びつつデータも送る。:idを使用する際に使用。(使用イメージ)
メッセージボディにデータを格納するためデータが保護される。
文字数制限:2048文字
getは指定したページに飛ぶ。(使用イメージ)
データは後ろに記述し送る。データは裸で送る。
文字数制限:なし
データを送る際はpostを使用する

1-2.redirect_to action: :アクション名
action名で指定 コントローラーを指定せず、アクション名のみを指定した場合、現在のコントローラーの該当するアクションにリダイレクトされる。
1-3.redirect_to controller: :コントローラー名, action: :アクション名
コントローラーとアクションを指定する。
1-4.redirect_to controller: :コントローラー名
コントローラー名で指定 アクションを指定せず、コントローラー名のみ指定した場合は、
指定したコントローラーのindexアクションに飛ぶ。

2.render

使い方はredirect_toと同じ。
アクションを実行せずに飛ぶ。
再実行するときや失敗時などに使用する。

3.まとめ

redirectはアクションを実行しページに飛ぶ。
renderは実行せずにページを飛ぶ。

参考元
https://qiita.com/shizen-shin/items/9c470b78430c649d9c7b
https://qiita.com/ryokky59/items/bba97cbfaa899b03e071

1
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
1
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?