У меня есть документ Mongoid под названием Оборудование, которое может вставлять несколько документов Вопроса. Вот схемы документов:Извлечение встроенного документа с использованием Mongoid
class Equipment
include Mongoid::Document
include Mongoid::Timestamps
field :description
field :modelNumber
field :title
field :categoryId
field :subCategoryId
field :stateId
field :city
field :askingPrice
embeds_many :questions
end
class Question
include Mongoid::Document
field :content
attr_accessible :content
embedded_in :equipment, :inverse_of => :questions
embeds_one :answers
end
Моя проблема заключается в том, что я могу получить документ вопроса на основе идентификатора вопроса. Однако мой текущий запрос возвращает родительский документ Equipment. Я бы ожидал, что запрос вернет встроенный документ Вопроса. В конечном итоге я могу получить встроенный документ Вопроса, но мне нужно пройти все документы Вопроса родительского документа оборудования.
Вот мой текущий запрос:
@question = Equipment.where('questions._id' => Moped::BSON::ObjectId(params[:id])).first
Есть ли способ, чтобы получить непосредственно внедренный Вопрос документ?
Благодарим за отзыв! Два предложенных вами предложения не помогли мне. :-(Однако это работает для меня: equipment = Equipment.find (params [: id]) question = equipment.questions.find (params [: question_id]). Любые мысли о том, как я могу объединить эти два запроса в один? –
@RichBlumer, это в основном второй запрос, который я написал. У вас просто разные имена для ваших параметров. 'question = Equipment.find (params [: id]). questions.find (params [: question_id])' –
Я согласен Моя проблема заключалась в том, что я не мог сцепить их вместе, как и вы. Всегда возникала ошибка в вопросах, таких методов нет. Я просто попробовал это, как будто у вас есть цепочки, и это работает! Спасибо за вашу помощь! –