如果您构建这样的投影:
t = Arel::Table.new(:projects)
ps = t.project(t[:id].as(:snark))
您如何获得名为 :snark 的结果列?
如果您构建这样的投影:
t = Arel::Table.new(:projects)
ps = t.project(t[:id].as(:snark))
您如何获得名为 :snark 的结果列?
由于您使用的是 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
干杯