Я столкнулся с ситуацией, когда по соображениям производительности я хочу / должен использовать представление для загрузки данных вместо выборки корневого объекта, а затем связанных объектов в запросе N + 1.Вместо того, чтобы повторять этот запрос везде, я хочу закодировать его в виде (используя живописные виды), чтобы я мог повторно использовать базовую логику - вместо того, чтобы копировать весь запрос и затем модифицировать необработанный SQL, я могу использовать представление и затемстандартные методы запросов активной записи.
К сожалению, часть данных, которые мне нужно сериализовать в моем ответе, генерируется PaperClip, и я не уверен, как обойти это.
Мой пользовательМодель имеет фотографию, сохраненную с помощью PaperClip.При сериализации моих данных я могу сериализовать это так же легко, как user.photo? ? user.photo.url : nil
.К сожалению, так как я не создаю экземпляр пользовательского класса, в то время как у меня есть все компоненты полученного URL (мое представление извлекает всю пользовательскую таблицу и добавляет дополнительные данные), я не уверен, как я могусобрать их вместе, чтобы создать фактический URL.Я не хочу снова вызывать базу данных для создания экземпляра пользовательского объекта, но я не думаю, что смогу создать экземпляр пользовательского объекта с существующими данными столбца.
Мне кажется, что я что-то упустил безумноЗдесь очевиден некоторый способ создания пользовательского объекта с использованием извлеченных данных столбца, просто не видя его.