You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: userable.rb
    path of file: ./repos/wei/app/models/concerns
    
    the code of the file until where you have to start completion: module Userable
  extend ActiveSupport::Concern

  # 加入一个活动
  def join_activity(a
    
  def relay(activity_id, base_user_id)
    $redis.pipelined do
      # 更新自己的上家id
      $redis.zincrby joined_list_key(activity_id), base_user_id, self.id

      # 更新上家的接力者列表
      $redis.zadd user_supporters_key(activity_id, base_user_id), Time.now.to_i, self.id

      # 更新上家的排名
      $redis.zincrby rank_list_key(activity_id), 1, base_user_id
    end

  end