Oni*_*han 12 ruby ruby-on-rails devise
使用before_action :authenticate_user!检查,如果用户登录,但它发送给用户login,而不是signup.
试图引导用户到不同的方式signup来代替login,但他们没有成功注册之后,用户发送回原来的页面.
如何发送用户注册并将用户引导回原始页面?
尝试:
before_filter :auth_user
def auth_user
redirect_to new_user_registration_url unless user_signed_in?
end
Run Code Online (Sandbox Code Playgroud)
Rails.application.routes.draw do
devise_for :installs
resources :orders
resources :products
devise_for :users
get 'dashboard' => 'pages#dashboard'
get 'contact' => 'pages#contact'
get 'cart' => 'carts#index'
root 'pages#home'
Run Code Online (Sandbox Code Playgroud)
你要找的是一个referer.让你的before_filter工作,你可以覆盖Devise的after_sign_up_path_for:
def after_sign_up_path_for(user)
request.referer
end
Run Code Online (Sandbox Code Playgroud)
由于request.referer某种程度上不起作用,我认为你可以使用基于会话的解决方案:
def auth_user
session[:before_sign_up_path] = request.fullpath
redirect_to new_user_registration_url unless user_signed_in?
end
def after_sign_up_path_for(user)
session[:before_sign_up_path]
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
857 次 |
| 最近记录: |