2015-03-01 2 views
0

Я объявил @@ category_count в моем UserHelper, и у меня проблема, потому что после перезагрузки мой var не сбрасывается?Как я могу сбросить свою переменную

module UsersHelper 

    @@category_count = Hash.new(0) 

    def category_counter(name) 
     @@category_count[name] += 1 
    end 

Перед перезарядка: А -> 1, B -> 2

После перезагрузки: А -> 2, B -> 4

+1

Почему вы определяете переменную класса? Как определить переменную экземпляра? –

+0

, потому что я получаю ActionView :: Template :: Error (неопределенный метод '[] 'для nil: NilClass) – dziorkowsky

ответ

2

Вы должны определить переменную экземпляра:

def category_counter(name) 
    @category_count ||= Hash.new(0) 
    @category_count[name] += 1 
end 
+0

почему' @@ '? : (... –

+0

спасибо большое, я новичок. Поэтому, когда я могу использовать @@? – dziorkowsky

+0

Не используйте @@, если вы не понимаете проблем с [глобальными переменными] (http: //programmers.stackexchange .com/вопросы/148108/почему-это-глобальное государство так зло). –

Смежные вопросы