(Rails)有没有办法检查字段的数据类型?

时间:2009-08-10 22:48:18

标签: ruby-on-rails

如何检查从数据库中检索的内容的数据类型是什么?

例如,如果我有一个带有数据库字段“title”的模型@model的实例化,我希望能够编写类似@ model.title.type的代码并让它返回“String”。 Rails是否有任何内置功能?

2 个答案:

答案 0 :(得分:40)

试试这个:

@model.column_for_attribute('title').type

应该返回:string:text:integer

ActiveRecord Column类还包含许多其他属性:default,limit,name,null,precision,primary,scale,sql_type,type。

答案 1 :(得分:12)

在Rails 3中,对于我的模型“公司”,我会使用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

等等。