0

我有这个 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条记录,我不明白这些记录有什么特别之处。如果我这样做,除了存储的 154 条记录之外,所有其他记录的 p @files.id 都为零。

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

请帮忙..问候

4

1 回答 1

0

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

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

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

查看 Files 对象的模型定义以及未保存的数据样本以及已保存的数据样本将很有帮助。我最后一次遇到这个问题是当我需要设置我的文本字段的大小时,因为我溢出了默认值。

于 2012-07-11T12:54:42.100 回答