【问题标题】:Rails objects lasting between sessionsRails 对象在会话之间持续存在
【发布时间】:2013-11-08 22:46:12
【问题描述】:

我正在使用 Snoo Gem 为 reddit 构建 Rails 应用程序。

在我的ApplicationController 中,我像这样创建Snoo 对象:

  def reddit
    @reddit ||= Snoo::Client.new
  end

然后我在另一个控制器中授权我的用户。我现在注意到的是,每次新用户访问应用程序时都不会创建一个新的Snoo 客户端。如果我从隐身浏览器甚至另一台计算机一起访问我的应用程序,他们仍然登录到授权的同一个 reddit 帐户。

如何告诉 rails 为每个访问者创建一个新的 Snoo 客户端?

【问题讨论】:

  • 你弄明白了吗?
  • @creativereason 还没有。它实际上与我不认为的会话无关。我很困惑为什么 rails 没有在内存中为每个访问者创建一个新的 Snoo 对象,而不是重用同一个对象。
  • 也许深入Snoo Gem 看看它是否是单例?另一种选择是在您完成该会话后尝试注销:@reddit.log_out

标签: ruby-on-rails ruby ruby-on-rails-4 reddit


【解决方案1】:

编辑: 我对 Snoo Gem 一无所知,但听起来它试图与周围的 API 保持一个连接(单例),也许在 Snoo github 上询问?

您可以尝试手动重置为 nil 或 new...或注销?

在你的例子中使用它:

def reddit
    @reddit = nil #manually reset
    @reddit ||= Snoo::Client.new
end

def reddit
    @reddit = Snow::Client.new #always a new instance..?
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 2011-10-10
    • 2021-05-14
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多