Ich habe das Artikelmodell und das ArticleLike-Modell, das den Benutzer aufnimmt, mag den Artikel oder nicht.orders_to on ActiveRecord von Rails erzeugt viele Anfragen
Das articleLike Modell gehört zur Art und die Definition ist wie folgt
class ArticleLike < ApplicationRecord
belongs_to :article
end
Wenn ich ArticleLike.where verwenden (: article_id: XXX), Active wird eine rohe Abfrage wie
SELECT * FROM article WHERE article_id = XXX
senden
Ist es möglich ActiveRecord zu vermeiden, diese rohe Abfrage an meine DB zu senden? Manchmal muss ich nur einige Felder auswählen, die keinen Join benötigen, aber Activetrecord fügt immer die Tabellen hinzu (includes), wenn ich im Modell "ostens_to" festlege.
Vielen Dank.
einfach 'ArticleLike.where (: article_id: XXX)' sollte die Abfrage nicht tun Sie erwähnen. Könnten Sie 'ArticleLike.where (: article_id: XXX) .to_sql' ausführen und uns das Ergebnis anzeigen? – Leito
Entschuldigung. Ich habe festgestellt, dass die Abfrage gesendet wurde, weil ich das Modell neu lade und speichere. Wenn meine Article-Tabelle viele Spalten hat, ist es möglich, die Verwendung von SELECT * für die Überprüfung von Fremdschlüsseln zu vermeiden? Ich denke, es muss nur SELECT ID FROM Artikel verwenden, um die Konsistenz zu überprüfen. Vielen Dank. –
Haben Sie Validierungen, die diese Abfrage auslösen? Da es sich um die Frage handelt, sollte ein Artikel nicht gespeichert werden. Bitte aktualisieren Sie Ihre Frage, um die neuesten Erkenntnisse und Fragen zu berücksichtigen. – Leito