我有一个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本机数据类型的列和大小的数据类型。因为有数百个字段,所以我想遍历它们,并获取每个字段的数据类型。
答案 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
来获取纯字符串。