2009-08-10 87 views
21

如何检查从数据库中检索到的数据的数据类型是什么?例如,如果我有一个带有数据库字段“title”的模型@model的实例化,我希望能够编写类似@ model.title.type的东西,并让它返回“String”。 Rails是否有任何内置功能?(Rails)有没有办法检查字段的数据类型?

回答

33

试试这个:

@model.column_for_attribute('title').type 

应该返回:string:text:integer

ActiveRecord的Column类还包括一些其他属性:默认情况下,限制,名称,空,精密,小学,规模,sql_type,类型。

+1

注意还有:名称,精度,主要,null,限制和默认 – 2009-08-10 23:15:23

+0

谢谢,这没有把戏。 – Karl 2009-08-10 23:28:07

8

在Rails 3中,对于我的模型“Firm”,我会使用Firm.columns_hash

Firm.columns_hash["name"].type #returns :string 

如果你想通过他们迭代,你会做这样的事情:

Firm.columns_hash.each {|k,v| puts "#{k} => #{v.type}"} 

这将输出如下:

id => integer 
name => string 
max_trade_qty => integer 

等。

相关问题