如何在Rails服务器控制台中获取Postgressql数据库本机数据类型

时间:2019-02-07 08:11:35

标签: ruby-on-rails postgresql types native

我有一个Rails应用程序,数据库为postgressql。

我有一个要求,为了API集成,我需要按照postgres sql数据库术语共享字段的数据类型。

有什么方法或方法可以获取应用程序的PostgreSQL数据库的本机数据类型。

我在Rails控制台中尝试了以下命令

fields_array ["abc","cde","mno","pqr","stv" ,,,,,,, so on]

fields_array.each do |field_name|
 p field_type = User.type_for_attribute(field_name).type
 p sql_type = User.type_for_attribute(field_name).sql_type ## not working###
end

但是我正在按照rails获取数据类型。我需要根据postgressql本机数据类型的列和大小的数据类型。因为有数百个字段,所以我想遍历它们,并获取每个字段的数据类型。

1 个答案:

答案 0 :(得分:0)

 sql_type = User.columns.map{ |column| column.sql_type if c.name == field_name }.compact.first

您可以获取sql_types集合中的所有列User.columns。您可以对它们进行映射,如果其名称等于field_name,则返回column.sql_type。如果field_name存在,则返回一个包含许多nil和一个sql_type字符串的数组。 .compact然后从nil中清除数组,并返回单个元素数组。现在,您可以调用.first来获取纯字符串。