如何在gem中访问rails的数据?

时间:2012-10-28 19:17:33

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

我使用faye和private pub作为推送服务器。我需要在订阅频道时将用户的状态更新为在线状态。

我已经分叉了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模型。哪种方法最好?

1 个答案:

答案 0 :(得分:1)

尝试将环境添加到private_pub.rb。 对于前。

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