0
votes

Requête ActiveCord (inclut ou jointures)

J'ai deux classes: xxx

Comment puis-je faire une requête comme celle-ci? xxx

avec un test d'échantillon à partir de la console, je l'ai eu: Charge client (26.0ms) Sélectionnez "Clients". * Du "Clients" Inner Rejoignez "Packages" Sur "Packages". "Customer_id" = "clients". "ID" où (packages.expireses_at <'2019-03-13') limite 1 $ [["Limite", 11]] Traceback (appel le plus récent): ActiveInvalid (PG :: Undefinedfunction: erreur: l'opérateur n'existe pas: INTEGER = UUID) Ligne 1: ... Rejoignez interne "Packages" sur "Packages". "Customer_id" = "Custome ... ^ CONSEIL: Aucun opérateur ne correspond au nom de ce type (s) d'argument donné. Vous devrez peut-être ajouter des moules de type explicites. : Sélectionnez "CLIENTS". * À partir de "PARFAITS" INTERNIER "sur" Packages "sur" Packages "." Customer_id "=" Clients "." ID "où (packages.expireses_at <'2019-03-13') $ 1 IRB (Main): 003: 0>


1 commentaires

Résolu. Ma migration client était Create_Table: clients, ID :: UUID DO | T | ET J'ai ajouté un type :: UUID comme ceci: Create_table: clients, ID :: UUID, Type :: UUID faire | t |


4 Réponses :


2
votes

Vous pouvez transmettre l'expression dans les citations et lier la valeur pour expires_at. XXX


2 commentaires

La même chose, j'ai eu cette erreur activerecord :: relevéinvalid (pg :: Undefinedfunction: erreur: l'opérateur n'existe pas: Integer = uuid. Peut-être que j'utilise UUID à la place des identifiants séquentiels.


C'est un problème différent. Pourriez-vous préciser ceci? Ajoutez toute l'erreur que vous obtenez.



1
votes

Vous pouvez le faire:

Customer.includes(:packages).where('packages.expires_at < ?', Date.current).references(:packages)


1 commentaires

J'ai eu cette erreur activeCord :: relevéinvalid (pg :: Undefinedfunction: erreur: l'opérateur n'existe pas: Integer = uuid . Peut-être que j'utilise uuid à la place des identifiants séquentiels.



1
votes
Customer.includes(:packages).where("packages.expires_at < CURRENT_DATE").references(:packages)

1 commentaires

Au lieu de l'attente du code d'attente pour votre requête, concentrez-vous dans l'erreur que vous obtenez lors de leur application @Doknabaku.



0
votes

vous pouvez faire ceci: xxx


0 commentaires