2009-08-10 20 views
21

Veri türü, veritabanından alınan bir şeyin ne olduğunu nasıl kontrol edersiniz? Örneğin, bir veritabanı alanı "başlığı" olan bir modelin modelinin bir örneğini varsa, örneğin @ model.title.type gibi bir kod yazabilir ve "Dize" döndürmesini sağlayabiliyordum. Örneğin; Rails bunun için herhangi bir yerleşik işleve sahip mi?(Rails) Alanın veri türünü kontrol etmenin bir yolu var mı?

cevap

33

bu deneyin:

@model.column_for_attribute('title').type 

dönmelidir :string, :text, :integer vb

ActiveRecord Column sınıfı da diğer birkaç özellik içerir

: Varsayılan, sınır, isim, null, hassasiyet, birincil, ölçek, sql_type, yazın.

+1

Not ayrıca şunları içerir: ad, hassasiyet, birincil, boş, limit ve varsayılan –

+0

Teşekkürler, bu hile yaptı. – Karl

8

Rails 3 modelimde, "Firm" modelim için Firm.columns_hash kullanıyorum. İçlerinden yineleme yapmak istiyorsanız

Firm.columns_hash["name"].type #returns :string 

, böyle bir şey yapacağını:

Firm.columns_hash.each {|k,v| puts "#{k} => #{v.type}"} 

çıkış aşağıdaki hangi: vb

id => integer 
name => string 
max_trade_qty => integer 

ve.

İlgili konular