Я использую mongoid в качестве своей формы, и я вызываю to_json для набора результатов. Начальная реализация работает отлично, за исключением того факта, что все загружается на лету (в отличие от активной загрузки)
Упрощенная схема и код ниже:
Answer has_many likers
all_answers=Answer.includes(:likers).all.map{|a| a}
all_answer.to_json(:only=>[:text],:include => {:likers=>{:only=>[:_id,:nickname]}})
Я начал использовать этот великий самоцвет ( mongoid_eager_loading ), и он прекрасно работает. Однако, когда я вызываю to_json в наборе результатов
all_answers=Answer.includes(:user, :question,:likers,:comments).all.map{|a| a}
all_answer.to_json(:only=>[:text],:include => {:likers=>{:only=>[:_id,:nickname]}})
Я получу эту ошибку:
undefined method `serializable_hash' for #<Array:0x00000105b3d020>
Эта ошибка возникает, только когда я пытаюсь включить массив, например: Answer has_many likers.
Я подозреваю, что массивы, содержащиеся в отдельных объектах, не имеют метода serializable_hash.
Как я мог решить эту проблему? Благодарим за любую идею!