登录重定向到主页,而不是停留在同一页面上

时间:2013-03-28 08:29:41

标签: ruby-on-rails-3 devise

我安装了设备并且它正常工作但登录重定向。当用户从任何应用页面登录时,Devise会将用户重定向到主页,而不是在同一页面上重定向。我尝试实现How_to解决方案但没有帮助。

我在application_controller中写道:

def after_sign_in_path_for(resource)
 current_user_path 
end

但它给出了错误:

undefined local variable or method `current_user_path' for #<Devise::SessionsController:0xaeacc34>

我写的时候:

def after_sign_in_path_for(resource)
 current_user_path 
end

它给出了:

undefined method `user_url'

这个问题的解决方案是什么?任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您需要重定向到其他scenerio(错误或成功)的其他地方吗?通常在用户成功登录后使用after_sign_in_path_for。 SO:

如果您没有覆盖设计默认功能,则使用下面的代码将导航控制转到特定的自定义页面。此操作也可以访问current_user

def after_sign_in_path_for(resource)
    scope = Devise::Mapping.find_scope!(resource)
    scope_path = :"#{scope}_root_path"
    respond_to?(scope_path, true) ? send(scope_path) : root_url
end

更新: 另一个例子如下:

 def after_sign_in_path_for(resource_or_scope)
    current_user.admin? ? dashboard_admin_home_index_path : current_user.sign_in_count >= 1 ? "/home/dashboard" : "/#{current_user.role}/dashboard"
  end

答案 1 :(得分:1)

您可以使用request.referer

def after_sign_in_path_for(resource_or_scope)
  request.referer
end