【发布时间】:2013-03-28 02:52:20
【问题描述】:
你如何检查从数据库中检索到的东西的数据类型是什么?
例如,如果我有一些带有数据库字段“title”的模型@model 的实例化,我希望能够编写@model.title.type 之类的代码并让它返回“String”。 Rails 是否为此提供了任何内置功能?
【问题讨论】:
标签: ruby-on-rails
你如何检查从数据库中检索到的东西的数据类型是什么?
例如,如果我有一些带有数据库字段“title”的模型@model 的实例化,我希望能够编写@model.title.type 之类的代码并让它返回“String”。 Rails 是否为此提供了任何内置功能?
【问题讨论】:
标签: ruby-on-rails
试试这个:
@model.column_for_attribute('title').type
应该返回:string、:text、:integer等
ActiveRecord Column 类还包括许多其他属性:default、limit、name、null、precision、primary、scale、sql_type、type。
【讨论】:
在 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
等等。
【讨论】: