Ich habe ein Modell Buch wie folgt aussehen:Suche Verein mit class_name
class Book < ActiveRecord::Base
belongs_to :author, class_name: 'User', touch: true
belongs_to :translator, class_name: 'User'
end
Wie kann ich für Bücher mit bestimmten Autorennamen gesucht? i kommen Sie mit den Tabellen zuerst:
Book.joins(:author).joins(:translator)
aber ich kann nicht Kette
.where('authors.name = "Tolkien"')
, weil es keine "Autoren" Tabelle in der Datenbank ist. ist
.where('users.name = "Tolkien"')
ein sicherer Ansatz hier? Besteht kein Risiko, dass sowohl Übersetzer als auch Autoren tatsächlich Nutzer sind? (select() Methode ist keine Option, ich brauche Active :: Beziehung hier)
Bitte teilen Sie die Datenbankstruktur. Was passiert, wenn das Buch zwei Autoren hat? _drei Übersetzer_? – mudasobwa
können Sie 'where ({author: {name: 'Jon'}, Übersetzer: {name: 'Doe'}})' verwenden oder den Join manuell schreiben und ihm manuell einen Namen geben. –