2017-02-19 15 views
0

У меня есть две модели: MongoidMongoid создания документа с массивом

bid.rb и supplier.rb

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

Я хотел бы запросить встроенный :supplier:name и отображать :bid:amount в ответ JSON ,

Я пробовал всевозможные способы, самый дальний из которых я получил: Bid.all.pluck(:supplier, :amount), который возвращает только идентификатор и сумму поставщика.

Прямо сейчас я могу написать bid_data = Bid.all, чтобы получить следующий JSON ответ:

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

Как я могу запросить в контроллере Bid.supplier.name?

В идеале я хотел бы что-то вроде Bid.all.pluck(:supplier.name, :amount)

ответ

0

Когда вы говорите:

embeds_one :supplier 

вы на самом деле говорят, что bids коллекция имеет Hash поле под названием supplier и Hash должны быть обернуты в обычный Mongoid::Document прочее. Это означает, что вы можете запросить supplier, как и любой другой Hash:

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

Но как я пишу запрос для отображения ': amount' и': supplier.name' вместе? – HoosierCoder

+0

Вы пытаетесь запросить имя или вытащить только название? –

+0

Попытка запросить: имя поставщика и соответствующее: количество от ставок – HoosierCoder

 Смежные вопросы

  • Нет связанных вопросов^_^