Это не имеет ничего общего с ActiveRecord. Это простой синтаксис Ruby.
@foo
обозначает переменную экземпляра. Он ограничен экземпляром своего класса и отличается для каждого экземпляра класса. Содержимое сохраняется до тех пор, пока сохраняется экземпляр класса.
foo
может обозначать локальную переменную, которая действительна только в текущей области видимости блока. Он выходит из области видимости, как только блок выходит, и содержимое отбрасывается, если на него нет ссылок в другом месте.
И нотация @ не имеет ничего общего с массивами или любыми другими типами данных. В Ruby переменные не имеют типов данных. @bar
без проблем примет строку, целое число или массив. И так будет bar
.