2012-07-11 5 views
0

이 루비 함수를 사용하면 1030 레코드가됩니다. MusicTab::FOps.gen_list('/fun/Music') datamapper를 사용하여 저장하고 싶습니다. 이 작업을 수행 할 때ruby ​​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

@ files.errors보고하려고합니다. 내 생각 엔 당신이 검증에 실패하고 구원받지 못한다는 것입니다.

일부 디버그 로깅을 사용하도록 설정하고 문제를 격리하는 데 도움이되는지 확인할 수 있습니다.

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

파일 오브젝트에 대한 귀하의 모델 정의를 참조하는 것이 도움이 될 것이며, 저장되지 않은 데이터의 샘플 및 수행 하나. 마지막으로이 문제를 접했을 때 기본값을 초과하여 텍스트 필드의 크기를 설정해야했습니다.

+0

감사합니다. @ files.errors는 file_path가 50 charecters가되어야한다는 오류를 보여주었습니다. 대부분의 경우 50보다 커야합니다. 그렇다면 'String'크기를 늘려서 300 또는 500 개의 charecters까지 늘릴 수있는 방법을 말해 줄 수 있습니까? – pahnin

+0

나는 그 일을 잘 알고있다. 고마워. :) – pahnin

관련 문제