我有一個用戶可以更改密碼的設計表單。我做了一個自定義重定向,以便在提交表單(而不是設計默認根頁面)後返回編輯密碼頁面。這是自定義重定向代碼:Ajax設計更新表單只在沒有表單錯誤時才起作用
class RegistrationsController < Devise::RegistrationsController
protected
def after_update_path_for(resource)
puts 'redirect is happening' #This is so I can see it in the server logs
flash[:notice] = "Account succesfully updated"
edit_user_registration_path
end
end
路線:
devise_for :users, :controllers => { :registrations => :registrations }
唯一的問題是,這隻會做重定向到編輯頁面密碼,如果密碼變更成功。如果沒有(可以說用戶輸入了錯誤的密碼確認),它仍然會重定向到根頁面。有沒有人知道如何在出現錯誤時正確工作?
UPDATE:
這事做的事實,我提出通過AJAX的形式。更新成功後,會觸發after_update_path_for方法,並將用戶重定向到配置爲返回javascript的edit_user_registration_path。問題是如果after_update_path_For方法沒有被觸發,它會像通常的失敗一樣呈現edit_user_registration_path,除非它將它呈現爲html,並且我已經創建了它,所以頁面只能通過javascript呈現。有任何想法嗎?