首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails嵌套设备重定向

rails嵌套设备重定向
EN

Stack Overflow用户
提问于 2011-12-28 21:34:21
回答 1查看 133关注 0票数 0

我有一个嵌套资源的应用程序。我的路由是:

代码语言:javascript
复制
resources :teams do 
  resources :blogs
end

在我的博客控制器中,我使用了不同的布局,通过添加

代码语言:javascript
复制
layout "teamlayout"

传给控制器。application.html.erb和teamlayout.html.erb这两种布局都包含了一个登录表单本身。我是通过下面的代码实现的:https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app

现在我的问题来了。当用户登录时,我希望他重定向到他登录的页面。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-29 01:48:06

您有几个选项:

在登录表单中包含一个描述登录源的隐藏字段值(例如hidden_field_tag(:login_source, "team")),并定义您自己的SessionsController#create逻辑,该逻辑使用隐藏字段值来确定response_with的位置。

或者,您可以通过在带有登录表单的控制器中使用before_filter来跟踪用户的位置,方法如下

代码语言:javascript
复制
def store_location
  session['saved_location'] = request.request_uri
end

然后,您可以覆盖应用程序控制器中的after_sign_in_path_for(资源)方法,以使用会话saved_location值来确定重定向的位置。

对我来说,第二种选择似乎对设计基础设施的侵入性较小,但灵活性较差。

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

https://stackoverflow.com/questions/8656592

复制
相关文章

相似问题

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