2010-07-30 103 views
0

插入我一個有以下的DataMapper的ressource:紅寶石:DataMapper的不數據庫

class Job 
    include DataMapper::Resource 
    storage_names[:default] = 'job' 
    property :id,   Serial 
    property :at,   Integer, :required => true, :min => 0 
    property :name,  Float, :required => true, :default => 0 
    property :cpu,  Float, :required => true, :default => 0 
    property :memory,  Float, :required => true, :default => 0 
end 

當這樣做:

DataMapper.auto_migrate! 

表 '工作',在數據庫中正確創建。 但是當我做:

Job.create(
    :at  => entry[:timestamp], 
    :name => process.to_s, 
    :cpu  => data[0], 
    :memory => data[1] 
) 

沒有在「工作」數據庫表中插入真。 (數據映射器日誌中也沒有)

任何想法?

+0

從[datamapper文檔](http://datamapper.org/docs/create_and_destroy.html)中,您可以要求Datamapper在出現錯誤時引發異常:'Job.raise_on_save_failure = true' – 2012-01-11 03:37:01

回答

1

嘗試在返回的對象中啓用dm驗證並檢查#errors,這會告訴您數據是否有問題。如果它無效,DataMapper將不會插入任何內容。 >字符串

這就是爲什麼DataMapper的不插 -

property :name,  Float, :required => true, :default => 0 

:name => process.to_s, 

浮動<:你的後:) Job.Create

+0

謝謝,這有助於我發現錯誤。 – Riba 2010-08-05 07:12:30

0

嘗試Job.save對象數據庫。

非常感謝您的幫助。

+0

是的,我不包括.save或.create ... – Riba 2010-08-05 07:13:14