Хорошо, я знаю, что это немного откровенно, но я использую JRuby на Rails, и я относительно новичок в обоих.Я вижу поведение, которое я не могу понять, и я хотел бы знать, делаю ли я что-то неправильно или это проблема с моим стеком.Основная проблема заключается в том, что кажется, что мои атрибуты класса переинициализируются, чего я не ожидал бы.
Вот мой код
class MyController < ActionController::Base
cattr_accessor :an_attr
before_filter :init_an_attr
def init_an_attr
if @@an_attr.nil?
@@an_attr = {}
end
# do some other stuff here
end
end
Проблема заключается втот факт, что каждый раз, когда вызывается init_an_attr, условие if оценивается как true, и я в конечном итоге переназначаю @@ an_attr.
Это ожидаемое поведение?Если да, то можете ли вы объяснить, почему, потому что для меня назначение должно произойти только один раз.