J'ai la ligne suivante dans mon modèle ActiveRecord: ceci est destiné à me permettre de lire enregistrement.utilisateurs d'une manière que je commande à l'aide d'un champ d'index dans le modèle Record_Users . P> Le problème est que cela échoue sur PostgreSQL avec l'erreur suivante: p> existe un moyen de réparer la déclaration pour le faire fonctionner? < / p> p>
3 Réponses :
J'ai couru dans quelque chose de similaire auparavant et je crois que c'est un bogue AR lié à pgsql ( https://rails.lighthouseApp.com/projects/8994/tickets/1711-has-many-Argh-Association- avec-commande-causes-a-sql-error-with-postgreSQL ). p>
Je me suis arrêté en laissant tomber la directive distincte (: UNIQ) et résolue les enregistrements UNIQ Entraînant une autre manière. Genre de bummer cependant. P>
Je suppose que vous pourriez appeler cela un bug dans Aciverecord. PostgreSQL est un peu plus restrictif que MySQL. Vous pouvez aider Aciverecord en configurant l'association comme celle-ci à la place:
class Record < ActiveRecord::Base has_many :users, :through => :record_users, :select => 'DISTINCT users.*, record_users.index', :order => "record_users.index ASC"
Vous pouvez, puisque c'est. MySQL est un peu plus permissive et non standard dans ce qu'il accepte.
Je ne comprends pas - qu'est-ce qui ne va pas avec ma solution ci-dessus? J'aimerais savoir, parce que je l'utilise dans mon propre projet en cours d'exécution sur Postgres;)
Casper, je ne pense pas que James disait que c'était une mauvaise solution ;-) Aussi, est-ce une faute typographique?
De plus, ma question était - existe-t-il un moyen de résoudre la déclaration pour le faire fonctionner ?. Votre réponse a fonctionné parfaitement!
Cool. Je suppose que j'ai supposé que James avait voté ma réponse et que son commentaire était l'explication de cela - devinez non;)
Je veux dire que j'ai des enregistrements en double!
Il suffit de poster ce numéro sur le suivi des émissions de Rails sur GitHub (copié du billet de phare afin que nous puissions le ramener .. Il était marqué invalide): P>
https://github.com/rails/rails/issues/520 < / p>
Promouvez-le si vous le souhaitez bien! :) p>
Pouvez-vous poster le SQL généré?