带有ar-extensions的rails bulk insert:如何插入IGNORE?

时间:2012-01-13 02:37:10

标签: ruby-on-rails

我正在使用ar-extensions gem在Rails 2.3.11中进行批量插入,并想知道插入ignore的语法是什么。如果我这样做:

User.import friends

然后我得到重复的密钥错误。我可以试试这个:

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

但如果我真的不想更新它,那么就必须有一些方法来做一个INSERT IGNORE。有人知道这个的正确语法吗?

1 个答案:

答案 0 :(得分:0)

所以这更像是一个解决方法而不是一个完整的答案,但是可以通过简单地避免将模型对象添加到表中已存在的导入数组来完成这项工作。关于上述示例,这可以如下实现。假设我们通过逐个添加好友对象来填充朋友:

friends += [friend]

我们可以通过简单地执行以下操作来避免添加麻烦的对象:

friends += [friend] if !User.find_by_id(friend.id)