Question

Si vous construisez une projection comme ceci:

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

Comment obtenez-vous la colonne de résultat qui est nommé: snark

Était-ce utile?

La solution

Puisque vous utilisez le Core Arel et non enregistrement actif (qui sera préféré à l'avenir) Vous devez comprendre ce qui se passe derrière le moteur. Selon si vous appelez .each ou .first vous retournerez un tableau de Arel :: Row (s) ou un Arel :: Row (respectivement)

Arel :: rangée se compose d'au moins trois parties. La relation, l'en-tête, et le corps (tuple). Ce sont les principes de l'algèbre relationnelle.

t = Arel::Table.new(:projects)
ps = t.project(t[:id].as(:snark)).first 
#should do the trick and return an Arel::Row

Vive

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top