如何检查从数据库中检索的内容的数据类型是什么?
例如,如果我有一个带有数据库字段"title"的模型@model的实例化,我希望能够编写像@ model.title.type这样的代码并让它返回"String".Rails是否有任何内置功能?
Dav*_*Ray 41
试试这个:
@model.column_for_attribute('title').type
Run Code Online (Sandbox Code Playgroud)
应该返回:string
,:text
,:integer
,等.
ActiveRecord Column类还包括许多其他属性:default,limit,name,null,precision,primary,scale,sql_type,type.
Gra*_*ier 12
在Rails 3中,对于我的模型"Firm",我会使用Firm.columns_hash
.
Firm.columns_hash["name"].type #returns :string
Run Code Online (Sandbox Code Playgroud)
如果你想迭代它们,你会做这样的事情:
Firm.columns_hash.each {|k,v| puts "#{k} => #{v.type}"}
Run Code Online (Sandbox Code Playgroud)
这将输出以下内容:
id => integer
name => string
max_trade_qty => integer
Run Code Online (Sandbox Code Playgroud)
等等.