Как получить 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 хеш имеет дополнительные столбцы в любом случае

Другие вопросы по тегам