【问题标题】:How to access rails's data in gem?如何在 gem 中访问 Rails 的数据?
【发布时间】:2012-10-28 19:17:32
【问题描述】:

我使用 faye 和私人酒吧作为推送服务器。当他订阅频道时,我需要将用户的状态更新为在线。

我已经派生了 private_pub gem 并更改了一些代码,我的应用程序发送了 user_id,但我不知道如何找到用户并更新他的状态,因为订阅事件在 gem 中触发。

module PrivatePub
  # This class is an extension for the Faye::RackAdapter.
  # It is used inside of PrivatePub.faye_app.
  class FayeExtension

    def incoming(message, callback)
      p "user_id = #{message['ext']['user_id']}"
      if message["channel"] == "/meta/subscribe"
        authenticate_subscribe(message)
        # user = User.find(message['ext']['user_id'])
        # user.status = 'online'
        # user.save
      elsif message["channel"] !~ %r{^/meta/}
        authenticate_publish(message)
      end
      callback.call(message)
    end
  end
end

我可以获取 user_id,但我不能在 gem 中使用 User 模型。最好的方法是什么?

【问题讨论】:

  • 如何在消息对象中包含 user_id?

标签: ruby-on-rails activerecord gem faye private-pub


【解决方案1】:

尝试将环境添加到 private_pub.rb。 例如。

require File.expand_path("../config/environment", __FILE__)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2018-07-04
    • 2011-04-16
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    相关资源
    最近更新 更多