Как получить graphql-ruby для сериализации вычисленных / прогнозируемых / производных / не баз данных столбцов из запроса в модели ActiveRecord
С помощью
result = Model.select(Model.table_name + '.*')
result = result.select(47 AS new_column)
result = result.where(...).order(...).limit(...) # etc.
result.to_a # gives an array of Model instances
Мне нужно получить доступ к значению new_column в качестве атрибута экземпляров модели.
Я не хочу создавать вычисляемый атрибут на модели; данные должны поступать из построенного запроса. Данные столбца, не являющегося базой данных, должны быть загружены, так как экземпляр модели раздувается #to_a
Я прочитал Включение пользовательского предложения SELECT в запрос ActiveRecord и Возврат пользовательских столбцов в запросе Rails ActiveRecord, которые выглядели связанными, но не являются.
Запрос ActiveRecord с вложенными моделями и производными значениями столбцов? Доступ к вычисляемым в SQL столбцам через ActiveRecord и добавление вычисляемого столбца в запрос ActiveRecord выглядят так, как будто они отвечают на мой вопрос, но, похоже, они говорят, что дополнительные значения столбца из исходного запроса автоматически присоединяются к экземпляру модели, и один добавляет методы доступа, чтобы получить их (или нет).
я добавил attr_accessor
для имен новых столбцов в классе модели, но эти атрибуты, по-видимому, не сериализуются, когда я возвращаю его в виде ответа graphQL. Где я могу найти информацию о фактической механике массива атрибутов AciveRecord# и как добавить в нее столбцы, не относящиеся к базе данных?
ура
1 ответ
Иногда Rails действительно крутой
Результат запроса является частью завышенного экземпляра модели, но для его просмотра требуются средства доступа (геттеры).
attributes
хеш имеет дополнительные столбцы в любом случае