Доступ к дочернему «текущему» объекту в rabl

#ruby-on-rails #rabl

#ruby-on-rails #rabl

Вопрос:

Я хочу получить объект, на который ссылается дочерний узел, чтобы я мог сделать запрос.

Мой код выглядит так:

 child @course_types => :course_types do |course_type|
  attributes :id, :name, :deleted
  child CourseTypeCategory.where(course_type: course_type, active: true) => :category_position do
    attributes :category_id, :position
  end
end
  

Результат этого запроса CourseTypeCategory.where(course_type: course_type, active: true) всегда возвращает тот же результат, как если course_type бы он всегда был одинаковым для каждого отображаемого типа (в этом случае, я подозреваю, всегда является первым объектом @course_types). Есть ли способ получить «текущий объект» дочернего объекта и выполнить запрос, как если бы вы выполняли цикл (например, an each do )?

Заранее спасибо и извините, если вопрос сбивает с толку.

Ответ №1:

Попробуйте это.

 child @course_types => :course_type do
    attributes :id, :name, :deleted
    node(:course_type_category) do |course_type|
        CourseTypeCategory.where(course_type: course_type, active: true).collect do |category|
            {category_id: category.id, position: category.position }
        end
    end
end
  

Извините за так мало информации об этом, я вроде как спешу.