使用
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
我已经阅读了在 ActiveRecord 查询中合并自定义 SELECT 子句和在 Rails ActiveRecord 查询中返回自定义列,它们看起来相关但不相关。
具有嵌套模型和派生列值的 ActiveRecord 查询?,通过 ActiveRecord 访问 SQL 计算列,并将计算列添加到 ActiveRecord 查询看起来像是在回答我的问题,但他们似乎说来自源查询的额外列值会自动附加到模型实例,而一个只是添加访问器以获取它们(或不获取它们)。
我已将attr_accessor
新列的名称添加到模型的类中,但是当我将其作为 graphQL 响应返回时,这些属性似乎没有被序列化。我在哪里可以找到有关 AciveRecord#attributes 数组的实际机制以及如何向其中添加非数据库列的信息?
干杯