首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4-设计:return_to以前的url

Rails 4-设计:return_to以前的url
EN

Stack Overflow用户
提问于 2016-05-30 20:14:16
回答 1查看 666关注 0票数 1

在Rails 4.2.4中,我使用了Devise gem (3.5.6,3.5.2,3.2.4),并试图使其适用于特定的场景。

当用户试图通过电子邮件访问user_profile_url(:anchor=>'section1')页面时,它会要求用户登录;登录后,会进入users_home_path。如果他已经登录,那么它将重定向到user_profile_url页面(#section1)。

我想在创建会话后立即重定向到user_profile_url(:anchor=>'section1') (从电子邮件链接单击)?我试图通过修改after_sign_in_path_for(resource)方法来修复它,但它不起作用。

代码语言:javascript
复制
def after_sign_in_path_for(resource)
  session[:return_to] || users_home_path
end

在html视图中,

代码语言:javascript
复制
<div id="unsubscribe">
...
</div>

我怎样才能让这个重定向起作用?

EN

回答 1

Stack Overflow用户

发布于 2016-05-30 20:45:07

您需要像下面的代码片段那样为session:return_to编写代码

代码语言:javascript
复制
def store_location
  # store last url - this is needed for post-login redirect to whatever the user last visited.
  return unless request.get? 
  if (request.path != "/users/sign_in" &&
      request.path != "/users/sign_up" &&
      request.path != "/users/password/new" &&
      request.path != "/users/password/edit" &&
      request.path != "/users/confirmation" &&
      request.path != "/users/sign_out" &&
      !request.xhr?) # don't store ajax calls
    session[:previous_url] = request.fullpath 
  end
end

来源:https://github.com/plataformatec/devise/wiki/How-To:-Redirect-back-to-current-page-after-sign-in,-sign-out,-sign-up,-update

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37525412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档