Привет, всем. Почему-то массив после .push() не обнуляется при перезагрузке страницы. Не могу понять, почему так.
class Stats
class << self
attr_accessor :condition, :result
end
@result = []
@condition = {}
def self.get_calculate_stats_by_model(model)
tracks = Track.all
# (...)
tracks.each do |track|
@result.push(Bar.get_stats_hash(track)
end
return @result
end
end
Это модель не от AR - тут у меня просто отдельная логика вынесена. И при каждом открытие страницы, @result растет, я конечно могу в каждом методе вызывать @result = [] и у меня будет счастье, но я так и не пойму, почему так будет происходить. Да и может решение намного лучше, чем в каждом методе обнулять массив.
Ах, да, может это из-за контроллера?
class StatsController < ApplicationController
before_action :set_default_params
def campaigns
@stats = Stats.get_calculate_stats_by_model(Campaign)
render 'stats'
end
private
def set_default_params
@condition = {
:date_from => params[:date_from] || Date.today-7,
:date_to => params[:date_to] || Date.today,
}
Stats.condition = @condition
end
end
То есть при каждой перезагрузке страницы @result наполняется дублированными записями. То есть, тупо, он не обновляется, как было бы в пхп. Это как-то работает кеш на переменные или моя тупость в логике? Хотя она по любому присутствует, исходя из проблемы. Спасибо.