На самом деле это плохая идея. Rails хранит сеанс в БД или в файловой системе (tmp / session). Если вы хотите знать, был ли пользователь на странице раньше, вы просто не удаляете сеансы (ни один сеанс не истекает). Но тогда количество сеансов вырастет в бесконечность.
Если пользователь возвращается на тот же компьютер с тем же браузером, сеанс все еще будет там. В вашем приложении / контроллере сессии вы можете сделать:
session[:visits] ||= 0
session[:visits] += 1
но тогда он будет увеличиваться с каждым кликом. Поэтому, если вы хотите просто посчитать посещения, вам также нужно сохранить время последнего нажатия и просто увеличить его, если пользователь отсутствовал более получаса или около того.
session[:visits] ||= 0
now = DateTime.now.to_i
session[:visits] += 1 if session[:last_click] && session[:last_click] < (now - 60*30)
session[:last_click] = DateTime.now.to_i
Все еще плохая идея, потому что, если пользователь возвращается в другой браузер или компьютер, счетчик запустится снова. (Подробнее о сессиях: http://ruby.railstutorial.org/chapters/sign-in-sign-out#sec:sessions)