2016-04-06 36 views
0

パスワードを更新した後、同じページにリダイレクトします。 私は2つのビューがあります:私はアカウント(編集またはedit_password)を更新するとdev_ ruby​​ on railsで 'after_update_path_for'の同じURLにリダイレクトする方法

  • edit.html.haml(account_path)

  • edit_password.html.haml(account_change_password_path)

、それがルート・ページに私をリダイレクトします(私は同じページにリダイレクトしたい)。

edit_passwordビューでパスワードを変更しようとすると、「edit view」のdeviseエラーが表示されます(edit_passwordビューのdeviseエラーが表示されます)。

私はこの問題を解決しようとした:

class RegistrationsController < Devise::RegistrationsController 
# ... 

protected 
def after_update_path_for(resource) 
    redirect_to :back 
end 
end 

が、それは動作しません。

どうすれば同じURLにリダイレクトできますか?

答えて

0

ほとんど正しいです。したがって、これらのパスヘルパーを作成するには、after_sign_up_pathafter_sign_in_pathafter_update_pathというURLが必要です。具体的には文字列です。このページを打つ他人のために

:更新作業の後に行うことへの鍵は、次のとおりです。

  1. after_update_pathメソッドをオーバーライドするために登録コントローラを作成しますが(これを行う方法のドキュメントを参照してください。https://github.com/plataformatec/devise#configuring-controllers
  2. を追加カスタム登録コントローラ
  3. protectedセクションの方法after_update_pathはその方法でのみ出力要素として文字列または保存された文字列として、パスを追加します
だから、

class RegistrationsController < Devise::RegistrationsController 
# ... 
protected 
def after_update_path_for(resource) 
     request.referrer || edit_user_registration_path 
end 
end 

ユーザーがedit_password_pathにあった場合、それは戻ってそこにそれらを取る:

たとえばあなたが戻ってあなたがから来たページにリダイレクトしたい場合。ただし、セキュリティ上の意識のユーザーがブラウザから参照者を削除するウイルス対策ソフトウェアまたはノーフォローソフトウェアを使用している場合、バックアップはユーザーを完全な登録パスに移動させることです。

+0

その作業と同じですが、「devise errors」は「edit.html.haml(account_path)view」にのみ表示されるのはなぜですか?私はエラー(たとえば、新しいパスワードと確認の新しいパスワードが違う)でパスワードを更新しようとすると、このビューのエラーで私を "account_path"にリダイレクトします。 – Giancarlos

関連する問題