Я пытаюсь измерить количество времени, проведенного на странице. Я пытаюсь сохранить время открытия и закрытия в переменной экземпляра контроллера; однако они либо не инициализируются, либо не равны нулю. Вот мой код:Переменные экземпляра Ruby nil
def table
@numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
if @time_opened.nil?
@time_opened = 1
@open_time = 0.0
@close_time = 0.0
else
@time_opened += 1
end
if @open_time > 0.0
@close_time = Time.now
end
@visit = Visit.new({number: @number, time_spent: @close_time - @open_time})
@visit.save
end
def show
url = request.url
@number = url[url.rindex('/')+1..-1]
@title = @number
@open_time = Time.now
end
Show вызывается каждый раз, когда отображается страница, на которую я хочу измерить. Когда я проверяю данные о посещении, число равно nil, а time_spent - 0.0.
Где вы устанавливаете @time_opened? Я не думаю, что это лучший подход к тому, что вы пытаетесь выполнить, но я не думаю, что вы когда-либо устанавливаете значение для @time_opened –