2016-04-18 8 views
-2

私のモデルにはルビーメソッドがあります。私は本番環境でこのメソッドをテストしており、MongoDBシェルでメソッドを実行したいと考えています。モデルにあるルビーメソッドを実行する構文は何ですか?ここに私の方法です。MongoDBシェルでRORモデルメソッドを実行

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 

この方法をMongoDBシェルで実行する方法が見つからないようです。

+0

Railsコンソールから 'normalize_code'を実行し、その結果をMongoDBシェルに貼り付けます。あるいは、JavaScriptで 'normalize_code'を実装してMongoDBシェルから実行できるようにしてください。 –

答えて

2

2つの異なるものを混在させています。あなたのRailsモデルはRuby言語で書かれており、Rubyインタプリタで実行できます。

MongoDBシェルは、基本的にMongoDBインスタンスへのインタフェースであり、Rubyインタプリタはありません。だから MongoDBシェルのRailsモデルメソッドを呼び出すことはできません

+0

ありがとう。これは私の元の質問に問題がある理由を説明するかもしれません。これを見て、あなたが何が間違っているかを私に知らせてください。 http://stackoverflow.com/q/36677603/3877058?sem=2 – SupremeA

関連する問題