ruby Datamapper没有插入所有记录

时间:2012-07-11 12:42:17

标签: ruby datamapper ruby-datamapper

我有这个ruby函数,可以产生1095条记录MusicTab::FOps.gen_list('/fun/Music') 我想用datamapper存储它们。当我这样做时

MusicTab::FOps.gen_list('/fun/Music') do |arr_f|
@files=Files.create(
:file_path => arr_f[0],
:title => arr_f[1],
:album => arr_f[2],
:artist => arr_f[3] )
end

只插入了154条记录,我不明白这些记录有什么特别之处。 如果我这样做,那么对于p @ files.id,除了那些存储的154条记录以外的所有其他记录都是nil。

MusicTab::FOps.gen_list('/fun/Music') do |arr_f|
@files=Files.create(
:file_path => arr_f[0],
:title => arr_f[1],
:album => arr_f[2],
:artist => arr_f[3] )
p @files.id
p @files.title
p @files.album
end

如果我只打印值,我可以看到所有值,如

counter=0
MusicTab::FOps.gen_list('/fun/Music') do |arr_f|
p arr_f
counter=counter+1
end
counter

请帮忙.. 此致

1 个答案:

答案 0 :(得分:0)

尝试查看@ files.errors。我的猜测是你没有通过验证而且没有得到保存。

您可以尝试启用一些调试日志记录,看看是否有助于隔离问题。

DataMapper::Logger.new($stdout, :debug)

查看“文件”对象的“模型定义”以及未保存的数据示例以及可以保存的数据示例将会很有帮助。我最后一次遇到这个问题时,我需要在文本字段上设置大小,因为我已经超出了默认值。