Ich habe 3 Modelle zu lösen:Wie richtig verwenden umfasst N + 1 Schiene
1) Contenttype (parent)
2) RecentTools (letzter 3 Childs von content Werkzeug ist das Modell, recent_tools nur Assoziation mit Umfang des Werkzeugs)
3) ToolTranslation (Kind-Tool)
ich möchte meine n + 1, lösen und schreiben die hierfür enthält. Gerade jetzt stucked IM:
ContentType.includes(recent_tools: :tool_translation)
Dies sollte ich arbeiten erraten Führer accorting, aber dies schließt immer gibt mir eine vollständige Liste der Werkzeuge, statt recent_tools, und alle Übersetzungen für sie.
Das ist mein tool.rb
class Tool < ApplicationRecord
has_one :tool_translation, -> { where(locale: I18n.locale) }, dependent: :destroy
belongs_to :content_type
scope :recent, ->(number){ limit(number) }
end
Und content_type Modell:
class ContentType < ApplicationRecord
has_many :tools, dependent: :destroy
has_many :recent_tools, -> { recent(3) }, class_name: "Tool"
end
Wo ich fehle? Kann jemand das erklären? Vielleicht ist es eine schlechte Logik, um ein neues Werkzeug zu bekommen (es benötigt, weil ich nur 3 letzte Werkzeuge von content_type auf der Hauptseite brauche)? Wie sollte ich die Includes richtig schreiben? Vielen Dank!
Versuchen 'has_many Wechsel: recent_tools, -> {letzten (3)}, class_name: "Werkzeug"' auf 'has_many: recent_tools, -> {Limit (3)}, class_name: "Werkzeug"' – Pavan