2016-04-18 8 views
-2

Ich habe eine Ruby-Methode in meinem Modell. Ich teste die Methode in der Produktion und möchte die Methode in der MongoDB-Shell ausführen. Wie lautet die Syntax zum Ausführen einer Ruby-Methode in einem Modell? Hier ist meine Methode.Führen Sie eine ROR-Modell-Methode in der MongoDB-Shell

Coupon.rb 

def self.get(code) 
    where(
    :code => (normalize_code(code)), 
    :$and => [ 
     { 
     :$or => [ 
      { :coupon_count.gte => 1 }, 
      { :coupon_count => nil } 
     ] 
     }, { 
     :$or => [ 
      { :expires_at.gte => Date.today }, 
      { :expires_at => nil } 
     ] 
     } 
    ] 
).first 
end 

Ich kann nicht scheinen, einen Weg zu finden, diese Methode in der MongoDB Shell auszuführen.

+0

nicht aufrufen Führen Sie 'normalize_code' aus der Rails-Konsole und fügen Sie das Ergebnis in die MongoDB-Shell. Oder implementieren Sie 'normalize_code' in JavaScript, damit Sie es in der MongoDB-Shell ausführen können. –

Antwort

2

Sie mischen 2 verschiedene Dinge. Ihre Rails-Modelle sind in Ruby-Sprache geschrieben und können innerhalb des Ruby-Interpreters ausgeführt werden.

Die MongoDB-Shell ist im Grunde eine Schnittstelle zu Ihrer MongoDB-Instanz und hat keinen Ruby-Interpreter. So können Sie eine Rails-Modell-Methode in MongoDB-Shell

+0

Ok danke. Dies könnte erklären, warum ich Probleme mit meiner ursprünglichen Frage habe. Bitte werfen Sie einen Blick darauf und lassen Sie es mich wissen, wenn Sie sehen, was falsch ist. http://stackoverflow.com/q/36677603/3877058?sem=2 – SupremeA

Verwandte Themen