Поскольку вы используете ядро Arel, а не активную запись (что будет предпочтительнее в будущем), вы должны понимать, что происходит за двигателем. В зависимости от того, вызовете ли вы .each или .first, вам будет возвращен массив Arel :: Row (s) или один Arel :: Row (соответственно)
Arel :: Row состоит как минимум из трех частей. Отношение, заголовок и тело (кортеж). Это принципы реляционной алгебры.
t = Arel::Table.new(:projects)
ps = t.project(t[:id].as(:snark)).first
#should do the trick and return an Arel::Row
Приветствия