ページ

2020年1月25日土曜日

【Rails】"ajax"でupdateへリクエストを送るとredirect_toが機能しない!

ハロハロ〜 しゅんです。

本日は、題名の通り、
「"ajax"でupdateへリクエストを送るとredirect_toが機能しない!」

【結論】redirect_toは普通のHTTPリクエスト時に機能するものなのでajaxで送られたリクエストには反応しません。
(普通の〜というのが語彙力不足ですみません💦)
今回は、AjaxHelperというモジュールを作成し、該当のcontrollerを少し変更して対応しました。

● Viewの変更

行いません。

● Module作成


app/controller/concerns/ajax_helper.rb を作成
module AjaxHelper
def ajax_redirect_to(redirect_uri)
{ js: "window.location.replace('#{redirect_uri}');" }
end
end


● Controllerの記述


class ItemsController < ApplicationController
# ↓作成したmoduleをincludeします
include AjaxHelper
def update
# ↓これを追加。パスは適宜変えてください。
respond_to do |format|
format.js { render ajax_redirect_to(item_path(@item)) }
end
end

これでOK😄

この作業でajaxから送られてきたリクエストをredirectすることができました。
何か間違いやご指摘などありましたら、宜しくお願いします!

0 件のコメント:

コメントを投稿