Неопределенный метод `add_column_for_on_duplicate_key_update` - activerecord-import - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь использовать activerecord-import как способ импорта нескольких записей.

Я пытаюсь запустить

Field.import records, :on_duplicate_key_update => [:application_id,:key]

, где records - это массив полей записи.

Я получаю ошибку:

NoMethodError: неопределенный метод 'add_column_for_on_duplicate_key_update' для # из /GEMS/gems/activerecord-import-1.0.4/lib/ activerecord-import / import.rb: 1003: в блоке add_special_rails_stamps

Я также пытался запустить Field.import records и Field.import records, on_duplicate_key_update: [:application_id, :key], но оба они выдают одну и ту же ошибку.

У меня был хороший поиск, но я нигде не могу найти ничего полезного.

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Если вы используете Rails 6, тогда вы можете использовать:

Field.insert_all records

Если нет, попробуйте использовать следующий синтаксис:

Field.import columns, [values]
0 голосов
/ 10 февраля 2020

Обновление дубликатов ключей (on_duplicate_key_update)

MySQL, PostgreSQL (9.5+) и поддержка SQLite (3.24.0+) при обновлении дубликатов ключей (также известный как "upsert") который позволяет вам указывать поля, значения которых должны быть обновлены, если нарушено ограничение первичного или уникального ключа.

Сначала проверьте соответствующую версию, чтобы узнать больше, прочитайте это https://github.com/zdennis/activerecord-import

...