rails使用postgresql jsonb记录用户活动?

时间:2016-05-06 01:45:48

标签: ruby-on-rails postgresql jsonb

我尝试使用jsonb数据格式(postgresql中的新功能),记录用户(与设计交互)活动,如pageview ...搜索字符串......

版本: Rails 4.2.6 Postgresql 9.5

我的模特:

class CreateUserLogs < ActiveRecord::Migration   
    def self.up
      create_table :user_logs, :id => false do |t|
        t.integer :user_id
        t.jsonb :data, default: '{}'
      end
      add_index :user_logs, :user_id   end   
    def self.down       
      drop_table :user_logs   
    end 
end

我的日志服务对象:

class UserLogger

  def initialize(current_user)
    @user_id = current_user.present? ? current_user.id : 0
  end

  def insert_log_data(request_ip, controller_name, action_name, object)
    user_log = UserLog.create!({
      user_id: @user_id,
      data: {
        ip_address: request_ip,
        controller_name: controller_name,
        action_name: action_name,
        id: object.id,
        created_at: Time.now.to_s(:db)
      }
    })
  end
end

我的目标是简单分析所有用户和每个用户的日志数据。

得到像用户喜欢的前三篇文章......等等。 postgresql jsonb是noSQL,是日志数据的不错选择。

我尝试impressionist gem,但是当数据变大时,效果会下降。

我应该将 User_ID 放在jsonb数据类型中吗?或者其他更好的方式?(我已经使用 Google Analytics ,但它无法跟踪每个用户的活动。我需要自定义数据。)

但如果我想分组和订购数据,也许印象派是更好的选择?

0 个答案:

没有答案