0

いくつかのデータをインポートする最初のRailsRakeタスクを作成しました。URLを使用して、ページを更新または挿入する必要があるかどうかを識別します。ただし、一部のレコードが単に更新されるのではなく、代わりに複数回挿入されるという、非常に奇妙な問題が発生しています。

私のクエリは次のようになります。

existingCompany = Company.find_by_external_link(company.external_link)

それから私は見ます

previousCompany.nil?

レコードを作成または更新する必要があるかどうかを確認します。一部の企業は、外部リンクが存在していてもアクティブレコードで見つかりません。URLを印刷してから、データベース(PostgreSQLを使用)を調べてみましたが、正しく検出されました。さらに奇妙なことは、それがすべてのレコードに発生するわけではなく、そのうちのいくつかだけに発生することです。

誰もがActiveRecordにレコードが存在しないと信じさせる理由を知っていますか?

4

1 に答える 1

1

あなたは多くの情報を提供しませんが、試すべきことがいくつかあります:

  1. company.external_linkはどのように設定されていますか?デバッガーまたは単純なプットのいずれかで、それがあなたの考えであるかどうかを知ることができます。例: " http://www.ups.com/"!= " https://www.ups.com/"!= " http://www.ups.com "
  2. company.external_link(.downcase、.strip)の大文字化または空白の削除に一貫性を持たせる必要がある場合があります

覚えておくべきもう1つのことは、ActiveRecordがメソッドCompany.find_or_create_by_external_linkを作成し、これを1つのステップで実行することです。

于 2013-02-28T16:44:02.927 に答える