【问题标题】:ActiveRecord giving wrong results in Rake taskActiveRecord 在 Rake 任务中给出错误的结果
【发布时间】:2013-02-28 16:34:03
【问题描述】:

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

我的查询如下所示:

existingCompany = Company.find_by_external_link(company.external_link)

我接着看

existingCompany.nil?

查看是否需要创建或更新记录。即使存在外部链接,也无法通过活动记录找到一些公司。我试图打印出 url,然后查看数据库(我使用 PostgreSQL)并正确找到它。更奇怪的是,并非所有记录都发生这种情况,只有少数记录。

有人知道是什么让 ActiveRecord 认为记录不存在吗?

【问题讨论】:

  • 你能提供任何找不到的链接吗?
  • 是的,完全没问题。

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


【解决方案1】:

您没有提供很多信息,但可以尝试一些事情:

  1. company.external_link 是如何设置的?在调试器中或 一个简单的看跌期权可以告诉您它是否是您的想法。例如 "http://www.ups.com/" != "https://www.ups.com/" != "http://www.ups.com"
  2. 您可能需要在大小写上保持一致 或删除 company.external_link (.downcase, .strip) 中的空格

要记住的另一件事是 ActiveRecord 创建了一个方法 Company.find_or_create_by_external_link 将在一个步骤中完成此操作

【讨论】:

  • 显然外壳一定有问题。我不习惯 PostgreSQL 和 Rails,所以我习惯于不区分大小写的查询。谢谢
猜你喜欢
  • 2015-08-25
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
  • 1970-01-01
  • 2011-12-01
  • 1970-01-01
  • 2018-02-05
相关资源
最近更新 更多