Итак, вот забавный. У меня есть метод контроллера, который возвращает список «возобновляемых» объектов на основе некоторых правил. Но есть критерии, которые я не могу включить в один запрос базы данных - поэтому я бы хотел отобразить «базовый» возобновляемый список, а затем по существу запустить фильтр на нем до возвращения к клиенту.Rails Active Model Serializer - нужно манипулировать рендерингом json перед отправкой
Другими словами, то, что я пытаюсь сделать, это:
sessions = ended_sessions.where("current_date <= (created_at + interval '12 hours')")
json = JSON.parse(SessionResumeSerializer.new(sessions).as_json)
json.each do |session|
# additional processing
end
Во всяком случае, SessionResumeSerializer.new(sessions).as_json
полностью не работает, бросая: ошибка
NoMethodError: undefined method 'read_attribute_for_serialization' for <ActiveRecord::Relation:0x007ffa164b0ce0>
.
Я явно смущен тем, как это должно работать - кажется совершенно интуитивным, что инициализатор примет отношение и отобразит его.
Есть ли лучший способ сделать это?
Мне это нравится - большое решение! В итоге я немного изменил направление и зациклился на отношении сеансов, сделал свою обработку в точке THAT, а затем добавил к массиву сериализаторов с одним объектом, которые затем возвращаются. Отлично работает и сохраняет фактическую сериализацию json позже в этом процессе, как и должно быть. Давать вам ответ так или иначе, как он бы тоже работал. спасибо – MBHNYC