2017-05-30 3 views
-2

Hier ist meine Frage: Es gibt einen Movie_Buff-Ordner für verschiedene Methoden erstellt, um Abfragen zu generieren, und sie arbeiten nicht unter einer Klasse. Ich habe etwas wie Actor.first.vanity_projects oder Movie.first.vanity_projects probiert, um diese Methode zu testen, aber sie alle geben mir die undefinierte Methode `vanity_projects 'für #. Hier ist, was ich für die Methode geschrieben:Wie testen Sie Abfragen manuell in der Rails-Konsole mit Nicht-Modell-Methode?

def vanity_projects 
Movie 
    .select("movies.id, movies.title, actors.name") 
    .joins(:actors) 
    .where("actors.id = director_id") 
    .where("castings.ord = 1") 
end 

Screenshot for directories

Wie bin ich in der Lage jene Methode in der Konsole zu testen?

+0

Bearbeiten Sie Ihre Frage und die entsprechenden Ergebnisse Code statt zu einem Bild zu verbinden. – mmichael

Antwort

0

Die Art des Ergebnisses, das diese Vanity_Project-Methode zurückgeben muss, scheint keine Objektmethode zu sein. Versuchen Sie, es wie eine Klassenmethode zu definieren, mit einem Selbst innerhalb einer der Klassen Film oder Schauspieler (oder beide, wenn Sie es wünschen, aber nicht empfohlen). Wie folgt aus:

class Movie 
    def self.vanity_projects 
    #The Query 
    end 
end 

Und nennen dies von der Konsole wie folgt aus:

Movie.vanity_projects #=> Returns your query's result.