4

如果您构建这样的投影:

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

您如何获得名为 :snark 的结果列?

4

1 回答 1

5

由于您使用的是 Arel Core 而不是活动记录(将来会首选),因此您必须了解引擎背后发生了什么。根据您是否调用 .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

干杯

于 2010-04-19T03:18:28.080 回答