2013-02-28 54 views
0

我創建了我的第一個導入一些數據的Rails Rake任務。它使用URL來確定頁面是否需要更新或插入。然而,我有一些索姆真的很奇怪的問題,而不是隻更新一些插入記錄多次。ActiveRecord在Rake任務中給出錯誤結果

我的查詢看起來是這樣的:

existingCompany = Company.find_by_external_link(company.external_link) 

我再看看

existingCompany.nil?

查看是否需要創建或更新記錄。即使存在外部鏈接,也無法通過有效記錄找到一些公司。我試圖打印出網址,然後查看數據庫(我使用PostgreSQL),並發現它正確。更奇特的是,它不會發生在所有記錄中,只有其中的一小部分。

任何人都知道什麼可能會使ActiveRecord認爲一條記錄不存在?

+0

你能提供任何無法找到的鏈接嗎? – codeit 2013-02-28 16:50:26

+0

是的,這完全沒有問題。 – Dofs 2013-03-01 06:37:23

回答

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這將在一個步驟中做到這一點

+0

顯然外殼肯定有問題。我不習慣PostgreSQL和Rails,所以我習慣於區分大小寫的查詢。謝謝 – Dofs 2013-03-01 08:44:36