Comment utilisez-vous la méthode #Comme de Arel?
-
24-09-2019 - |
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
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