ActiveRecord在Rake任务中给出错误的结果

时间:2013-02-28 16:34:03

标签: ruby-on-rails-3 postgresql activerecord rake

我创建了第一个导入一些数据的Rails Rake任务。它使用URL来标识是否需要更新或插入页面。然而,我有一些非常奇怪的问题,一些记录被多次插入,而不是仅仅被更新。

我的查询如下:

existingCompany = Company.find_by_external_link(company.external_link)

然后我看看

  

existingCompany.nil?

查看是否需要创建或更新记录。即使存在外部链接,也不会通过活动记录找到某些公司。我试图打印出url,然后查看数据库(我使用PostgreSQL),它找到了正确的。更奇怪的是,它不会发生在所有记录中,只会发生在其中的一些记录中。

任何人都知道什么可能使ActiveRecord认为记录不存在?

1 个答案:

答案 0 :(得分:1)

您不会提供大量信息,但需要尝试以下几点:

  1. company.external_link是如何设置的?在调试器或 一个简单的看跌期权可以告诉你它是否是你的想法。例如 “http://www.ups.com/”!=“https://www.ups.com/”!= “http://www.ups.com
  2. 您可能需要在资本化方面保持一致     或删除company.external_link(.downcase,.strip)中的空白区域
  3. 要记住的另一件事是ActiveRecord创建一个方法Company.find_or_create_by_external_link,它将一步完成