我有以下seeds.rb文件:
require 'spreadsheet'
allEng1 = [] #english
allSpa1 = [] #english to spanish
allSpa2 = [] #spanish
allEng2 = [] #spanish to english
totalWords = 4999
#Lang.truncate_me!
book1 = Spreadsheet.open('FinishedEnglishListNoDuplicatesWithFrequencyWithPOSReadyForDB6.xls')
sheet1 = book1.worksheet 'Sheet1'
book2 = Spreadsheet.open('finishedSpanish.xls')
sheet2 = book2.worksheet 'Sheet1'
for i in 0..totalWords
vrow = sheet1.row(i)
allEng1[i] = vrow[0]
allSpa1[i] = vrow[1]
vrow = sheet2.row(i)
allSpa2[i] = vrow[0]
allEng2[i] = vrow[1]
end
for j in 0..totalWords
Lang.create(english: allEng1[j], english_to_spanish: allSpa1[j], spanish: allSpa2[j], spanish_to_english: allEng2[j])
end当我删除Lang中的所有内容并运行seeds.rb时,它似乎会“记住”以前在DB中的单词。
例如,在我的电子表格'finishedSpanish.xls‘中,我会将西班牙语单词'yo’更新为'Yo‘,但是当我运行以下命令时,仍会在DB中得到'yo’:
Lang.delete_all
rake :seed(这个命令运行得非常快,这使我认为旧数据是缓存在某个地方,而不是加载更新的信息)
知道这是为什么吗?
发布于 2014-11-02 02:10:37
如果没有回调导致大小写,而且由于不可能记住您删除的数据库,所以数据库不是造成问题的原因。因为delete_all运行一个直接的SQL Delete语句,甚至不涉及回调。
从您的目录中删除所有的xls文件(同时也清空垃圾以避免任何存在的tmp文件)。那就把新的放好。
https://stackoverflow.com/questions/26695117
复制相似问题