DEVISE 成功登录后,如何将用户重定向回之前需要登录的操作?

2024-04-22

我有一个 ajax 投票按钮:如果用户单击“竖起大拇指”图像,但尚未登录,那么他们应该看到一个对话框,要求他们先登录。

为了实现这个对话框,我使用 jQuery 和 Facebox 绑定到 ajax:failure 事件。如果用户未登录,Devise 将引发 401 未经授权。facebox 在显示 DEVISE 登录表单的弹出对话框中加载用于登录的远程 html。

一切正常,除了成功登录后,用户被重定向到主页。如果用户被重定向回他们正在查看的帖子,以便他们可以继续投票,那会更直观。

是否有实现这种行为的最佳实践方法?

Thanks.


我使用 Authlogic on Rails 3 执行以下操作,也许您可​​以使用它或执行类似的操作:

class ApplicationController < ActionController::Base
  after_filter :store_location
private
  def store_location
    session[:return_to] = request.fullpath
  end

  def clear_stored_location
    session[:return_to] = nil
  end

  def redirect_back_or_to(alternate)
    redirect_to(session[:return_to] || alternate)
    clear_stored_location
  end
end

然后你可以使用类似的东西redirect_back_or_to dashboard_path在您的登录操作中。

对于某些控制器/操作,我不想存储位置(例如登录页面)。对于那些我只是跳过过滤器:

class UserController < ApplicationController
  skip_after_filter :store_location
end

Devise wiki 中还有一个关于执行此操作的页面:https://github.com/plataformatec/devise/wiki/How-To:-成功登录时重定向到特定页面 https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DEVISE 成功登录后,如何将用户重定向回之前需要登录的操作? 的相关文章

  • 如何在多个Postgresql数据库之间共享表

    我的 Web 应用程序有多个部署 每个部署都是一个具有唯一 URL 的唯一站点 每个部署都有不同的数据 UI 等 但有非常相似的 Postgresql 数据库结构 带有 PostGIS 这些数据库都位于同一数据库服务器上 我希望来自 1 个
  • ASP.NET MVC - 角色提供程序的替代方案?

    我试图避免使用角色提供程序和成员资格提供程序 因为在我看来它太笨拙了 因此我试图制作自己的 版本 它不那么笨拙并且更易于管理 灵活 现在我的问题是 除了角色提供者之外 还有其他不错的选择吗 我知道我可以自定义角色提供者 会员提供者等 通过更
  • ActiveRecord 迁移后的括号 [5.1] 是什么?它是如何工作的? [复制]

    这个问题在这里已经有答案了 使用生成新迁移时bin rails g migration CreateUser第一行如下所示 class CreateUser lt ActiveRecord Migration 5 1 什么是 5 1 代表什
  • Rails 应用程序助手不支持中文字符

    def top cateogries with home category id 1 concat raw
  • Rails 6 + Capistrano - 没有这样的 puma.sock 文件

    拜托 我有一个大问题10多个小时了 每当我使用 Capistrano 和 Puma 在 Rails 中运行应用程序部署并重新启动 nginx 时 当我尝试访问我的 Web 时 我会看到此错误 在此输入图像描述 https i stack i
  • jQuery 的 event.stopPropagation() 导致 Rails 出现问题:remote => true

    我创建了一些自定义 弹出窗口 最初使用 display none 样式 它们通过相邻的 popup trigger 链接进行切换 具有以下汇总功能 public javascripts application js jQuery docum
  • Rails form_for :remote=>true 没有调用 js 方法

    我不知道为什么这不起作用 我正在学习 Rails 我正在关注一本书 它说要这样做 div class field div div class field div
  • 将 Stripe webhook 与 Rails 结合使用

    我已经按照 Ryan Bates 的 Railscast http railscasts com episodes 288 billing with stripe 成功构建了一个 Rails 应用程序 但是 在 Railscast 中他没有
  • 在 Laravel 中创建用户表

    我在 laravel 的用户表方面遇到了一些麻烦 我很久以前就已经删除了那些默认表 现在我尝试使用 Auth 但无法注册 因为数据库中没有表 但我也无法创建表php artisan migrate 因为我已经删除了那些迁移表 所以我想再次创
  • Rails 渲染不必要的信息

    我一直在使用 RoR 和 Bootstrap 我试图将我的代码渲染成我在网上找到的片段 基本上我的索引中有这个 div class col md 6 div class well well sm div class row p p p p
  • JQuery 文件上传:在 data.submit() 上发送两个请求

    我正在尝试使用在我的应用程序中上传视频回形针 and jquery 文件上传 rails 我跟着使用回形针和 jquery 上传文件 https 5minutenpause com blog 2013 09 04 multiple file
  • Errno::EIO:输入/输出错误 -

    class FaxFetchWorker include Sidekiq Worker sidekiq options retry gt false def perform job id 0 logger warn perform is i
  • 预编译 Rails 5 以包含所有资源

    我正在尝试预编译所有资产以进行生产 当我跑步时RAILS ENV production bundle exec rake assets precompile并非我的所有资源都经过预编译 我尝试过使用其他人在其他类似问题中建议的方法 但它们对
  • 使用 cURL 设计身份验证

    如何使用 Devise 从终端使用 cURL 验证我的 Ruby on Rails 应用程序 我想 curl user email password http domain bla api auth sign in 并正在回应 您要查找的页
  • Capistrano 无法部署到远程服务器

    SOLUTION 解决方案是将以下内容添加到 production rb 的顶部 unshift File expand path lib ENV rvm path Add RVM s lib directory to the load p
  • 如何使用 Fabrication 定义特质

    我正在学习如何使用制造 http www fabricationgem org getting started in Rails我们决定更换所有factory girl代码与制造 假设我们有这段代码factory girl FactoryG
  • 查找所有具有重复名称的用户

    我有具有名字和姓氏字段的用户 我需要做一个 ruby 查找根据名字和姓氏具有重复帐户的所有用户 例如 我想要一个查找功能 可以搜索所有其他用户 并查找是否有任何用户具有相同的姓名和电子邮件 我在想像这样的嵌套循环 User all each
  • simple_forms 自定义数据属性

    我想在 simple form 生成的输入标签上有一个附加的数据属性 以下不起作用 这怎么可能做到呢 有可能吗 正如您可能已经猜到的 我正在尝试将 bootstrap datepicker 添加到我的网站 而不使用显式 js 来初始化日期选
  • Http Auth 不适用于 PHP

    我使用 Laravel Lumen Shield 扩展进行 Http 身份验证 但是在我的本地计算机上一切都很完美 我只在我们的服务器上遇到了问题 问题是在我提交正确的登录数据后 登录屏幕再次出现 我尝试了不同的登录数据 不同的浏览器 登录
  • ruby-on-rails 检查查询结果是否为空(Model.find)

    我正在 Rails 上使用 ruby 并尝试检查查询是否返回值 这是查询 search Customer find by name login name 如果查询找到结果 一切都很好 但是我如何对空结果做出反应 I tried if sea

随机推荐

  • 内置模块计算最小公倍数

    我目前正在使用一个接受两个数字并使用循环来查找这些数字的最小公倍数的函数 def lcm x y This function takes two integers and returns the L C M Choose the great
  • MySQL order by 在 group by 之前

    这里有很多类似的问题 但我认为没有一个能充分回答这个问题 我将从当前最流行的继续question https stackoverflow com questions 5140785 mysql order before group by如果
  • ANTLR“无法启动调试器。等待连接到远程解析器超时。”

    我在 AntlrWorks 中运行的 ANTLR 语法之一抛出 无法启动调试器 等待连接到远程解析器超时 过去 此消息通常会消失 但此消息会持续存在 在搜索 ANTLR 列表时 例如http www antlr org pipermail
  • 将 A => M[B] 转换为 M[A => B]

    对于一个单子M 是否可以转A gt M B into M A gt B 我尝试过遵循这些类型 但没有成功 这让我认为这是不可能的 但我想我还是会问 另外 搜索 Hooglea gt m b gt m a gt b 没有返回任何东西 所以我没
  • Perl:函数参数不足

    我是 Perl 的新手 目前正在尝试理解提到的错误消息 我有这段代码 仍然主要用于测试目的 usr bin perl use strict use warnings my info autor gt Karryanna jazyk gt c
  • Android ACTION_SHUTDOWN 广播不起作用

    Code public class ShutdownReceiver extends BroadcastReceiver private static final String TAG ShutdownReceiver Override p
  • Javascript“this”被事件监听器覆盖[重复]

    这个问题在这里已经有答案了 我可能做错了什么 但在尝试将一些面向对象编程应用于 Javascript 时 我发现了一些有趣的行为 考虑以下 function Bug element this focusedCell null element
  • jquery导航

    我正在为网站登陆页面创建一个简单的导航 它将用户引导到客户业务的两侧之一 基本上包括当您滚动到一侧时屏幕被分成两半 另一侧淡出 My code HTML div a href retail html Retail a a href resi
  • 使用 C# 以 PDF 形式动态存储和发送 SSRS 报告

    我在 SSRS 中有一份报告 它以 a 作为参数SalesRepCode and Email生成 PDF 收据 如果我使用报告查看器 它就会正常工作 使用 C 我想为每个存在的销售代表自动生成 PDF 一旦呈现 PDF 我想将其存储在文件夹
  • 无法在 Simulator XCode 6.0 中运行应用程序

    从 XCode 5 0 迁移到 XCode 6 0 后 项目无法运行并出现以下错误 An error was encountered while running Domain FBSOpenApplicationErrorDomain Co
  • Firebase 数据库结构 - 需要建议

    我知道这个问题可能被视为基于意见的问题 但是我认为值得讨论正确构建数据库的方法 我在 Swift 中开发 iOS 应用程序 并决定使用 firebase 作为我的后端服务 让我们从应用程序描述开始 该应用程序旨在为图书阅读体验提供跟踪和社交
  • 断言失败时如何继续执行

    我正在使用 Selenium RC 使用 Java 和 eclipse 和 TestNG 框架 我有以下代码片段 assertTrue selenium isTextPresent Please enter Email ID assertT
  • Bootstrap 工具提示可以工作但由于 z 索引而隐藏?

    如果将鼠标悬停在第一支铅笔上 您可以看到工具提示出现 但它是隐藏的 我怎样才能让所有工具提示显示在其他所有内容之上 相关代码 nav text on click null function alert heyo nav text toolt
  • 从命令行(CLASSPATH)运行 Mahout

    在Windows下使用Maven成功编译了Mahout 我正在尝试从命令行运行示例之一 但我不明白我做错了什么 看起来像是 CLASSPATH 问题 假设我想运行 GroupLensRecommenderEvaluatorRunner 示例
  • 哪些数据会发送回 Paypal“返回”网址,以及如何将我自己的数据发送到此网址?

    实施标准 Paypal 立即购买 按钮 文档不清楚什么数据被传递到 返回 url 该文档也没有提及如何通过表单发送您自己的自定义数据 任何人都可以为此提供适当的文档吗 相关代码
  • C++ 中模板和 STL 的缺点 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 使用 STL 或模板有什么缺点吗 是否存在不适合的情况 首先 如果它们可以帮助您解决问题 您应该使用它们 模板是 C 非常重要的一部分 并且多年
  • 如何将 ISO7816 选择命令与 DESfire Ev1 卡一起使用?

    我有一张 DESfire Ev1 版本 1 3 卡 我正在尝试使用 ISO7816 apdu 样式选择一个文件 我有一份文件 需要帮助A0 A1 A2我可以使用本机或包装模式选择它 Native gt 5A A0 A1 A2 lt 00 W
  • CakePHP 2.0 中的错误处理。转义 viewVars [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在 Cake 2 中遇到了一个奇怪
  • 如何在 Swift 中从备份中排除文件?

    我在 Swift 1 2 中工作得很好 因为我使用 filePath 作为字符串 现在 Swift 2 希望我们所有人都使用 URL 路径 尽管我正在阅读他们的文档 但我无法让它工作 I have var fileName myRespon
  • DEVISE 成功登录后,如何将用户重定向回之前需要登录的操作?

    我有一个 ajax 投票按钮 如果用户单击 竖起大拇指 图像 但尚未登录 那么他们应该看到一个对话框 要求他们先登录 为了实现这个对话框 我使用 jQuery 和 Facebox 绑定到 ajax failure 事件 如果用户未登录 De