即使结果行为零,也可以从关系中获取列名吗?

时间:2019-02-25 04:34:50

标签: ruby-on-rails rails-activerecord

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

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

问题

  • 即使没有返回任何行,有什么方法可以获取查询的ActiveRecord::Relation列名称吗?

动机

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

1 个答案:

答案 0 :(得分:-1)

是的,您可以获取列名

如果结果为ActiveRecord :: Relation,则可以使用类似的内容

the_relation.column_names