2015-09-24 1 views
3

Comment interroger des vues sans modèle ou des fonctions de retour de table avec Ecto? Dans mon cas, la fonction (en prenant un argument) renvoie les mêmes colonnes que l'un de mes modèles et aurait juste besoin d'être en lecture seule.Interrogation de vues et de fonctions

+0

Désolé mais votre question n'est pas claire. Voulez-vous exécuter une commande SQL personnalisée? Si c'est le cas, vérifiez 'Ecto.Adapters.SQL.query (...)'. –

+0

Si j'ai un modèle de commentaire pour les billets de blog cette fonction renverrait les commentaires pour un poste spécifique avec quelques données différentes et une commande spéciale. La requête dans SQL ressemblerait à 'select * from special_comments (1)' Ensuite, je veux utiliser le résultat pour rendre les commentaires. Utiliser 'Ecto.Adapters.SQL.query (...)' comment l'obtenir dans les enregistrements de commentaires? – errorcode007

+0

Je vois. J'ai envoyé une réponse. :) –

Répondre

2

Vous pouvez dire Ecto de charger des données de toute vue ou de la table comme suit:

from c in "special_comments(1)" 

Si vous voulez charger que dans un module particulier, vous pouvez le faire:

from c in {"special_comments(1)", MyApp.Comment} 

Et vous devrait être bon d'y aller!

+0

Bien que cela ne fonctionne pas pour les fonctions, il le fait pour les vues et je pense que cela devrait également être mentionné dans les documents. Géré pour convertir le résultat de 'Ecto.Adapters.SQL.query (...)' manuellement en passant par-dessus les lignes retournées entre-temps. – errorcode007

+1

Ah, ça ne marchera pas pour les fonctions parce que nous emballons ce que vous donnez entre guillemets. –