首页 > 解决方案 > 即使结果行为零,是否可以从关系中获取列名?

问题描述

在 Rails 中,使用 ActiveRecord 来查询数据库。ActiveRecord 的查询产生一个 ActiveRecord::Relation 对象。由于我们可以执行ActiveRecord::Relation#select和指定任意的 SQL 选择子句,有时数据库返回的记录包含数据库中不存在的列。

如果该关系包含多于一行,则可以使用 获取该关系的列名the_relation.first.attributes。但是,当查询未返回任何记录时,此方法是不可能的。

问题

动机

例如,当您构建Daru::DataFrame实例或其他一些关系数据时,即使结果中没有记录,您也希望获取属性名称。

标签: ruby-on-railsrails-activerecord

解决方案


是的,您可以获得列名

如果结果是 ActiveRecord::Relation 那么你可以使用这样的东西

the_relation.column_names

推荐阅读