【问题标题】:Undefined method `add_column_for_on_duplicate_key_update` - activerecord-import未定义的方法`add_column_for_on_duplicate_key_update` - activerecord-import
【发布时间】:2020-02-10 14:25:01
【问题描述】:

我正在尝试使用 activerecord-import 作为导入多条记录的一种方式。

我正在尝试跑步

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

其中records 是字段记录数组。

我得到的错误是:

NoMethodError: undefined method 'add_column_for_on_duplicate_key_update' for # from /GEMS/gems/activerecord-import-1.0.4/lib/activerecord-import/import.rb:1003:in 'block in add_special_rails_stamps'

我也尝试过运行Field.import recordsField.import records, on_duplicate_key_update: [:application_id, :key],但它们都给出了相同的错误。

我进行了很好的搜索,但在其他任何地方都找不到任何有用的东西。

【问题讨论】:

  • 你使用的是哪个版本的rails?

标签: ruby-on-rails ruby activerecord activerecord-import


【解决方案1】:

如果您使用的是 Rails 6,那么您可以使用:

Field.insert_all records

如果不是,请尝试使用以下语法:

Field.import columns, [values]

【讨论】:

  • 抱歉回复晚了,我使用的是 Rails 4。
【解决方案2】:

重复密钥更新(on_duplicate_key_update)

MySQL、PostgreSQL (9.5+) 和 SQLite (3.24.0+) 支持重复键更新(也称为“upsert”),允许您指定在违反主键或唯一键约束时应更新其值的字段。

首先相应地检查您的版本,更多参考请阅读https://github.com/zdennis/activerecord-import

【讨论】:

    猜你喜欢
    • 2012-08-24
    • 2017-12-17
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 2015-03-16
    相关资源
    最近更新 更多