Это связано с типом переменной, которую вы используете:
local -> var
instance -> @var
class -> @@var
global -> $var
Сейчас вы используете @var, то есть instanced
. Это означает, что, когда вы покидаете этот экземпляр (когда вы меняете страницы), эта переменная «забывается», если вы не пропустите ее через скрытый элемент и не получите ее из params
.
В RAILS я не рекомендую использовать переменную $ var, это противоречит тому, что означает REST, вместо этого используйте что-то вроде session [: var], если вам нужно использовать такие переменные, как user_id на каждой странице.
Ссылки:
Это описание того, что такое REST
Это описание того, как работают состояния