Rails Single Table Vererbung/Unterklasse Finden Sie Bedingung im Elternteil
-
22-09-2019 - |
Frage
Ich habe eine Tabelle namens Benutzer (class User < ActiveRecord::Base
) und eine Unterklasse/STI von IT für Kunden ((class Client < User
).
Die "Filterung" des Clients funktioniert wie erwartet, mit anderen Worten Client.find (: All) arbeitet, um alle Clients zu finden.
Für Benutzer muss ich jedoch das Ergebnis filtern, um nur Benutzer zu finden, die keine Clients sind (wobei der Typ null oder leer ist).
Ich habe Folgendes in meinem Indexcontroller ausprobiert, aber egal was ich für den Typ einsetzt, es gibt alle Benutzer zurück, unabhängig vom Typ.
User.find(:all, :conditions => { :type => nil }, :order => 'name')
Irgendwelche Ahnung, wie dieser Zustand funktioniert?
Vielen Dank!
Lösung 2
Ok, hat es herausgefunden!
Die App verwendet eine LIB für die Standard -Controller -Methoden (ähnlich wie mit Ressource_Controller) und ich habe die Indexmethode im Benutzercontroller fälschlicherweise überschrieben.
Danke für die Hilfe Achim !!
Andere Tipps
Ich weiß nicht, wie das Attribut "Typ" gefüllt ist. Wenn Typ jedoch eine Datenbankspalte ist, können Sie sie durch einen geeigneten SQL -Ausdruck filtern:
User.find(:all, :conditions => [ " type=null or type='' "])
Oder meinst du die Funktion "Klasse"? "Typ" ist soweit ich weiß. IRB erklärt: Warnung: Objekt#Typ ist veraltet; Verwenden Sie Objekt#Klasse