Im使用sign_in\up设备
并让before_action :authenticate_user!
我的问题是,当用户未登录而我单击登录时,它会调用sign_in表单,并在填写后将我重定向到同一页面
例如,我没有登录,但我在根页面上,我想看到products/1我点击show模式弹出,我输入我的凭据,它会将我重定向到同一页面
但是在签到之后我想去products/1
会话控制器
class SessionsController < Devise::SessionsController
respond_to :js
layout false
def create
self.resource = warden.authenticate(auth_options)
if resource && resource.active_for_authentication?
sign_in(resource_name, resource)
end
end
end模板create.js.erb
<% if user_signed_in?%>
<%= request.referrer%>
window.location.href='<%= request.referrer %>'
<% else %>
$('#login_popup input').parent().addClass('inputbox_error');
$('#log_error_messages').show();
$('input').keydown(function(){
$(this).parent().removeClass('inputbox_error')
$('#log_error_messages').hide();
})
<% end %>在<% if user_signed_in?%>之后我应该做什么改变?
发布于 2016-03-25 19:25:00
如果您想在登录后重定向用户,可以在Devise::SessionsController中使用after_sign_in_path_for方法
首先在显示登录模式时将您所在的url存储在session中,如下所示:
session[:login_redirect] = url然后在登录后将用户重定向到该url。
class SessionsController < Devise::SessionsController
def after_sign_in_path_for(resource)
session[:login_redirect]
end
end还要使用会话路由更新您的routes.rb:
devise_for :user, :controllers => {:sessions => "sessions"}https://stackoverflow.com/questions/36218795
复制相似问题