ActiveRecordで生insert文を発行。影響結果を取得したい。

いやぁ、、、、バカでした・・・。
答えを知るのに凄く時間をかけてしまったので備忘と言うことで。

query = "INSERT IGNORE INTO ..."
ActiveRecord::Base.connection.execute(query)

で影響結果を知りたいと思ったのですが、、、どうやって取得するか15分ほどググってしまいました。いつまでたっても情報にヒットしないんでRailsAPIを眺めみるとすぐに解決!!。

query = "INSERT IGNORE INTO ..."
affected_rows = ActiveRecord::Base.connection.insert(query)

これでいいや〜と思ってコーディングを継続していたら、何だか溜まっていくテストデータの様子がおかしい。affected_rowsを確認してみると"0"ばっか返してる。ほとんど"1"になる想定なんだけど・・・・・。そしてRailsApiを眺め返してみると。。

insert_sql(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil)
Returns the last auto-generated ID from the affected table.

update_sql(sql, name = nil)
Executes the update statement and returns the number of rows affected.

まじで・・・・。ちゃんと読んでませんでしたよ。。

query = "INSERT IGNORE INTO ..."
affected_rows = ActiveRecord::Base.connection.update(query)

結局updateを使って解決しました

追記

検索文字列(同僚に言われたので)
直接 SQL count カウント 影響数