我有这个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
请帮忙.. 此致
答案 0 :(得分:0)
尝试查看@ files.errors。我的猜测是你没有通过验证而且没有得到保存。
您可以尝试启用一些调试日志记录,看看是否有助于隔离问题。
DataMapper::Logger.new($stdout, :debug)
查看“文件”对象的“模型定义”以及未保存的数据示例以及可以保存的数据示例将会很有帮助。我最后一次遇到这个问题时,我需要在文本字段上设置大小,因为我已经超出了默认值。