2017-02-19 3 views
0

Ich habe zwei mongoid Modelle:mongoid Dokument erstellen mit Array

bid.rb und supplier.rb

class Bid 
    include Mongoid::Document 
    field :amount, type: BigDecimal 
    embeds_one :supplier 
end 

Ich mag würde die eingebettete :supplier:name und zeigt die :bid:amount in einer JSON Antwort abzufragen .

Ich habe dies alle Arten von Wegen versucht, die weiteste, die ich bekam, war: Bid.all.pluck(:supplier, :amount), die nur die Lieferanten-ID und Menge zurückgibt.

Im Moment kann ich schreiben bid_data = Bid.all die folgende JSON-Antwort zu erhalten:

{"bid_data": 
[{"_id":{"$oid":"58a0a9a531d77f01529a22ba"}, 
    "amount":"5335.0", 
    "supplier":{"_id":{"$oid":"58a087b131d77f01529a229c"},"name":"Ford","comment":3} 
    }]} 

Wie kann ich die Bid.supplier.name in einem Controller abfragen?

Im Idealfall würde Ich mag so etwas wie Bid.all.pluck(:supplier.name, :amount)

Antwort

0

Wenn Sie sagen:

embeds_one :supplier 

Sie wirklich sagen, dass die bids Sammlung ein Hash Feld supplier genannt hat und dass Hash sollte in die verpackt werden üblich Mongoid::Document Zeug. Das bedeutet, dass Sie supplier wie jedes andere Hash abfragen können:

Bid.where('supplier.name' => 'Ford') 
+0

Aber wie schreibe ich eine Abfrage, um die 'anzuzeigen: amount' und': supplier.name' zusammen? – HoosierCoder

+0

Möchten Sie nach dem Namen fragen oder nur den Namen herausziehen? –

+0

Versucht, die: supplier.name und die entsprechende: Menge von den Geboten – HoosierCoder

Verwandte Themen