2009-08-10 10 views
21

データベースから取得したデータの種類を確認する方法を教えてください。(Rails)フィールドのデータ型をチェックする方法はありますか?

たとえば、データベースフィールド "title"を持つモデル@ modelのインスタンス化がある場合、@ model.title.typeのようなコードを作成し、 "String"を返すようにしたいと考えています。 Railsには組み込みの機能がありますか?

答えて

33

これを試してみてください:デフォルトでは、制限、名前、ヌル、精度、:

@model.column_for_attribute('title').type 

:string:text:integerなど

を返す必要がありますActiveRecordのColumnクラスは、他の属性の数を含んでいますプライマリ、スケール、sql_type、型

+1

注意:名前、精度、プライマリ、ヌル、リミット、およびデフォルト –

+0

ありがとう、それはトリックでした。 – Karl

8

私のモデル「Firm」では、レール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 

などを。

関連する問題