(Rails)有没有一种方法可以检查字段的数据类型?

42

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

例如,如果我有一个名为@model的模型实例,它具有数据库字段"title",我想编写类似@model.title.type的代码,并使其返回"String"。Rails是否具有任何内置功能来实现这一点?

2个回答

68

试试这个:

@model.column_for_attribute('title').type
应该返回 :string:text:integer 等类型。
ActiveRecord 的 Column 类还包括许多其他属性:default、limit、name、null、precision、primary、scale、sql_type、type。

2
注意,还有:名称、精度、主键、空值、限制和默认值。 - Sam Saffron

14
在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

等等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接