Нормального гема нет. Если делать это записями в базе, то будет тормозить. Я бы делал это на Redis.
Ставим Redis, подключаем гемы.
gem 'redis'
gem 'redis-rails'
Делаем себе config/initializers/redis.rb. Пишем там:
$redisTrackUsers = Redis.new(:host => "127.0.0.1", :port => "6379", :driver => :hiredis, :db => 1)
Потом в application_controller.rb пишем:
before_action :tracking_users
def tracking_users
$redisTrackUsers.set(request.remote_ip, true, ex: 24*60*60) // через день поле уничтожится
end
юзеры заходившие за последние 24 часа:
$redisTrackUsers.keys
Ну а потом по whenever, например, можно скидывать в базу.
Чем яндекс-метрика не устраивает?