Как вы используете метод ARas #as? - PullRequest
4 голосов
/ 07 апреля 2010

Если вы строите проекцию, как это:

t = Arel::Table.new(:projects)
ps = t.project(t[:id].as(:snark))

Как получить столбец результатов с именем snark?

1 Ответ

5 голосов
/ 19 апреля 2010

Поскольку вы используете ядро ​​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

Приветствия

...