设备中的sign_in_and_redirect如何工作?

2023-12-21

if @user.persisted?
      sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
      set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format?
else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
end

该方法存在于facebook omniauth callbacks controller。我面临的问题是我没有从 Facebook 获得用户的电话号码,因此@user不是一个有效的对象(我有一个validation)。因此,我想将用户重定向到另一个页面,我可以在其中询问电话号码。

如何修改sign_in_and_redirect @user 将我重定向到该页面而不是根URL。


Sign_in_and_redirect 方法uses after_sign_in_path_for确定登录后将用户重定向到何处的方法 https://github.com/plataformatec/devise/blob/master/lib/devise/controllers/helpers.rb#L236.

You can 轻松定制您的after_sign_in_path_for method https://github.com/plataformatec/devise/blob/master/lib/devise/controllers/helpers.rb#L184-L213检查电话是否存在,然后致电 super 或重定向到用户可以输入电话号码的页面。

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

设备中的sign_in_and_redirect如何工作? 的相关文章

  • Heroku 域名注册配置为雪松栈上的竹子

    我在 Cedar Stack 上运行时遇到 Heroku 的 DNS 配置问题 当我的自定义域具有正确的指向 CNAME 记录并正确配置为 Heroku 指令时 它一直认为我正在将 Cedar 堆栈路由到 Bamboo 事情是这样的 我最近
  • 从邮件程序访问助手?

    我试图从 Rails 3 邮件程序访问帮助程序方法 以便访问会话的当前用户 我将 helper application 放在我的邮件程序类中 这似乎可以工作 但其中定义的方法对我的邮件程序不可用 我收到未定义的错误 有谁知道这应该如何运作
  • 我可以在同一台 Apache 服务器上运行 Python Django 和 Ruby 吗?

    我正在使用 ModWSGI 在 Apache2 上运行 Python Django 并且我想在同一台服务器上运行 Ruby on Rails 可以这样做吗 我读到 Passenger for Ruby on Rails 也可以支持 Djan
  • 设计忽略我的自定义策略

    我想创建一个用于访问 API 的自定义身份验证策略 我按照示例代码进行操作设计忽略自定义策略 https stackoverflow com questions 3503827 devise ignoring custom strategy
  • Facebook 分享链接 - 可以自定义消息正文吗?

    我正在尝试创建一个在 Facebook 上共享页面的链接 到目前为止我已经得到 href http www facebook com sharer php u http 3A 2F 2Fwww cnn com 2F t CNN 26s we
  • Rails:控制文件存储缓存大小

    Rails 中基于文件的缓存的文档说 请注意 缓存将不断增长 直到磁盘已满 除非您 定期清除旧条目 不幸的是 它没有提供任何有关如何定期清除旧条目的信息 是否设置合适的值 expires in完成这项工作还是清除缓存背后还有其他某种黑魔法
  • Rails3-jquery-autocomplete 如果没有可用数据则清除字段

    我正在使用rails3 jquery autocomplete 如果自动完成没有返回结果 是否可以清除自动完成字段的值 我试图阻止用户提交数据库中没有的值 我使用的是旧版本 但我实现了change处理程序autocomplete call
  • 一旦元素存在就触发事件的脚本?

    我正在尝试编写一个小 Greasemonkey 脚本来实现 Facebook 中的一些任务 例如隐藏新闻等 问题是 我有一个 DOM 中尚不存在的元素的 ID 这是点击帖子的箭头图标时出现的小框 如何通过 jQuery 创建一个事件处理程序
  • 使用 Squeal 时可以有条件地在 where 块中添加子句吗?

    首先 我使用 Rails v3 2 9 和 Squeel 1 0 13 这就是我想要做的 我想使用三项身份信息中的任何一项来搜索客户 姓名 出生日期 dob 和社会保险号码 sin 结果集必须包括具有任何标识符 条件的 OR 的任何记录 我
  • Ruby on Rails 中的块调用

    我正在尝试清理我的代码并摆脱许多丑陋的哈希值 在我看来 我定义了几个这样的操作 actions interest gt Show interest link to disabled gt true follow gt Follow this
  • 带有取消订阅链接的 Rails 电子邮件

    我正在开发一个 Rails 4 2 应用程序 该应用程序每周都会有人们注册的活动 他们会在每次活动之前 每周 收到一封提醒电子邮件 我想要电子邮件中的一键取消订阅链接 这似乎是一个常见的任务 但我还没有找到一个好的当前解决方案 我看到的一些
  • 设计omniauth-facebook redirect_uri 不是绝对URI

    非常感谢您的建议 我迁移到 Heroku我有以下问题脸书全能认证验证 当我通过 facebook 进行身份验证时回调地址不起作用 我被发送到主页https barteringapps herokuapp com 带有以下日志错误消息 red
  • Fields_for 动态标签

    我有动态表单 它有一组值 我创建了一个包含我显示的文本字段的部分 在每个文本旁边 我想显示一个包含文本标题的标签 例如 名字和姓氏以前是未知的 我该如何去做呢 看来我无法直接访问属性 但是当我使用标签字段时 标签中的变量名称显示而不是实际值
  • “after_filter”如何/何时工作/运行?

    我正在使用 Ruby on Rails 3 1 我想知道 对于表现原因 无论是否after filter渲染视图文件后运行 也就是说 当用户访问我的应用程序 URL 时 他 她应该显示的相关视图文件先于渲染after filter运行或af
  • Ruby on Rails 中的渲染验证错误

    在模型中说Task 我有以下验证 validates presence of subject project user status 如何使用其他控制器呈现这些验证的错误消息 在我使用的 CustomController 内部 Task c
  • 错误 102 (net::ERR_CONNECTION_REFUSED):服务器拒绝连接 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我开发了 Facebook 应用程序 它克隆了我网站的注册和登录部分 用户可以通过 Facebook 注册或登录我的网站
  • 如何从字符串中提取包含非英文字符的 URL?

    下面是一个简单的脚本 它采用其中包含德语 URL 的锚标记 并提取 URL encoding utf 8 require uri url URI extract a href M nchen a puts url http www exam
  • Rails 模型中 self 的价值是什么?为什么没有明显的实例方法可用?

    我的 Rails 3 1 6 应用程序中有一个自定义访问器方法 即使该值不存在 它也会为属性分配一个值 my attr 属性是一个序列化哈希 除非指定了空白值 否则应将其与给定值合并 在这种情况下 它将把当前值设置为空白值 添加了检查以确保
  • 将多个 rake 任务合并为一个 rake 任务

    而不是像这样单独运行每个 rake 任务 rake db drop rake db create rake db migrate rake db load 我想运行一个可以完成所有任务的 rake 任务 这就是我的 rakefile des
  • 通过重定向让 Flash 哈希值持续存在

    我的基本用例是做一些处理 设置flash notice 然后重定向到新页面 据我所知 重定向会重置 flash 标签 如果我错了 请纠正我 有没有办法获得坚持呢 使用会话不是一种选择 我已经使用 cookie 解决了这个问题 但我认为必须有

随机推荐