如果您构建这样的投影:
t = Arel::Table.new(:projects)
ps = t.project(t[:id].as(:snark))
如何获得名为的结果列:snark?
答案 0 :(得分:5)
由于您使用的是Arel Core而非活动记录(将来会首选)您必须了解引擎背后的情况。根据您是否调用.each或.first,您将返回一个Arel :: Row或一个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
干杯