你如何使用ARel的#as方法?

Jam*_*ore 4 ruby ruby-on-rails arel

如果您构建这样的投影:

t = Arel::Table.new(:projects)
ps = t.project(t[:id].as(:snark))
Run Code Online (Sandbox Code Playgroud)

你如何得到名为的结果列:snark?

Snu*_*ggs 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
Run Code Online (Sandbox Code Playgroud)

干杯