2010-07-30 81 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