如何使用ajax刷新帶有錯誤消息的rails路徑。我正在等待支付API的回調,如果出現錯誤,我想重新加載頁面並顯示錯誤。問題是我正在使用ajax。我該如何解決這個問題?使用AJAX重定向到rails路徑
0
A
回答
1
刷新頁面以顯示簡單的反饋錯誤是完全沒有必要和冗長的。更簡潔,更直接的方法是使用js來更新回調中的dom。
一個非常非常簡單的例子:
$(".errors").append('<li>My error</li>');
在簡單的名稱,這樣做(或JavaScript中類似的東西),不只是重定向到顯示錯誤。
1
如果在數據庫中存在錯誤,則可以在回調函數上使用window.location以使頁面出現錯誤。
1
在這種響應AJAX請求的動作,你可以做
flash[:alert] = "My error"
然後要有行動渲染重定向這樣:
render js: "window.location.href = '#{my_named_route_path}'"
或者,你可能需要編寫一個方法如:
app/controllers/application_controller.rb
def redirect_to_via_xhr_if_applicable(url, options = {})
flash[:info] = options[:info] if options.key?(:info)
flash[:alert] = options[:alert] if options.key?(:alert)
flash[:notice] = options[:notice] if options.key?(:notice)
if request.xhr?
render js: "window.location.href = '#{url}'"
else
redirect_to(url)
end
end
然後,您可以從您的AJAX(或非AJAX)動作離子:
redirect_to_via_xhr_if_applicable(my_named_route_path, alert: 'My error!')
相關問題
- 1. 使用Express將路徑重定向到基礎「/」路徑
- 2. Rails 4&控制器重定向路徑
- 3. 路徑重定向
- 4. Rails路由重定向到錯誤的路徑
- 5. 軌Ajax調用重定向到無效的路徑
- 6. Rails:重定向到調用Ajax
- 7. redirect_to時不重定向到指定的路徑(jQueryMobile/Rails 3中)
- 8. 如何重定向到特定路徑?
- 9. 後/重定向/獲取:重定向到特定路徑
- 10. 使用Apache將主機名重定向到特定路徑
- 11. 重定向到Rails中相同頁面的路徑?
- 12. 的Rails:重定向到當前路徑,但不同的子域
- 13. 301將舊的php路徑重定向到新的Rails
- 14. 重定向到路徑以「/」結尾
- 15. 無法重定向到路徑?
- 16. will_paginate重定向到根路徑
- 17. Symfony2:重定向到請求的路徑
- 18. 重定向到錯誤路徑Phalcon
- 19. 按鈕重定向到錯誤路徑
- 20. htaccess重定向到完整路徑url
- 21. Apache rewritemod重定向到實時路徑
- 22. 將url路徑重定向到端口
- 23. window.onbeforeunload並重定向到根路徑
- 24. 如何重定向到路徑
- 25. .htaccess從路徑重定向到文件
- 26. Symfony3.3重定向到路由不採用定義的路徑
- 27. 重新定向路徑
- 28. 重定向execvp路徑
- 29. Apache - 重定向 - 路徑
- 30. 如何使Rails將post發送到return_to路徑,而不是重定向到它?
是啊這是最好的答案! –
@AlainGoldman創建另一個問題,如果你有困難實施這個正確。 –