рельсы массовая вставка с ar-расширениями: как вставить IGNORE? - PullRequest
1 голос
/ 13 января 2012

Я использую гем ar-extensions для массовых вставок в Rails 2.3.11, и мне интересно, что такое синтаксис для вставки игнорировать.Если я просто сделаю:

User.import friends

Тогда я получу повторяющиеся ошибки ключа.Я могу попробовать это:

User.import friends, :on_duplicate_key_update => [:first_name]

Но если я на самом деле не хочу его обновлять, то должен быть какой-то способ просто сделать INSERT IGNORE.Кто-нибудь знает правильный синтаксис для этого?

1 Ответ

0 голосов
/ 13 января 2012

Так что это скорее обходной путь, чем полный ответ, но это можно сделать, просто избегая добавления объектов модели в массив импорта, который уже существует в таблице. В отношении приведенного выше примера это может быть достигнуто следующим образом. Допустим, мы заполняем друзей, добавляя друг другу объекты один за другим:

friends += [friend]

Мы можем избежать добавления проблемных объектов, просто выполнив:

friends += [friend] if !User.find_by_id(friend.id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...