首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails数据库seeds.rb“记住”旧数据

Rails数据库seeds.rb“记住”旧数据
EN

Stack Overflow用户
提问于 2014-11-02 01:30:43
回答 1查看 87关注 0票数 1

我有以下seeds.rb文件:

代码语言:javascript
复制
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(这个命令运行得非常快,这使我认为旧数据是缓存在某个地方,而不是加载更新的信息)

知道这是为什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-02 02:10:37

如果没有回调导致大小写,而且由于不可能记住您删除的数据库,所以数据库不是造成问题的原因。因为delete_all运行一个直接的SQL Delete语句,甚至不涉及回调。

从您的目录中删除所有的xls文件(同时也清空垃圾以避免任何存在的tmp文件)。那就把新的放好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26695117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档