0

更新アクション ( Devise gem ) があり、前のページに応じて別のページにリダイレクトする必要があります。

そのような前のページをチェックしようとしました:

def after_update_path_for(resource)
 logger.info("request:referer: " + request.referer)
 logger.info("paypal_path: " + paypal_path)
  if request.referer == paypal_path
   show_code_path
  else
   edit_user_registration_path(current_user)
  end
end

しかし、うまくいきません。else ブランチに移動します。

コンソールから

     request:referer: http://127.0.0.1:3000/paypal
     paypal_path: /paypal
     Redirected to http://127.0.0.1:3000/users/edit.13

編集:

ホームページから paypal_path に行くと nil になり、paypal_path の後に edit_user_registration_path(current_user) にリダイレクトすると、以前の正しい URL - .../paypal が表示されます

それを機能させるために何ができますか?

4

2 に答える 2

0

次のように現在のページを確認できます: current_page?(:controller => 'controller_name', :action => 'action_name')

于 2012-10-05T06:35:01.497 に答える
0

チャットの後、方法を見つけました:

if request.env['HTTP_REFERER'] == "http://#{request.env["HTTP_HOST"]}/paypal"
  show_code_path 
else 
  edit_user_registration_path(current_user) 
end
于 2012-10-05T06:55:56.417 に答える