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

时间:2010-04-06 20:44:37

标签: ruby-on-rails ruby arel

如果您构建这样的投影:

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

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

1 个答案:

答案 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

干杯