学習記録

アウトプット用に作りました

renderとredirect_toの使い分け

render

別のアクションを経由せずに、直接ビューを表示する。

使用目的 : エラーなどで処理が正常に完了せず、元の画面に戻したいだけの時に使用する。

def create
  render :new     # 表示するviewファイルを指定
end

→ 登録に失敗したら、新規登録画面を表示する。

controller → view
(createアクション) → (新規登録画面)


redirect_to

他のURLに転送する。

使用目的 : データの追加(create)、更新(update)、削除(destroy)をしたいときに使用する。

def create
  task = Task.new(task_params) 
  task.save!
  redirect_to tasks_url
end

→ 登録画面で入力されたデータがデータベースに保存されて、一覧画面(tasks_url)に移動する

controller → URL → route → controller → view
(createアクション) → (HTTPリクエストを受け取る) → (リクエストを処理) → (indexアクション) → (一覧画面)


※ render、redirect_toを記述しないと、renderで処理される。(renderは省略可)


登録が成功するとき(データベースに変化があるとき)は、redirect_toを使う。
この認識でいいのかな〜。。