在我的RESTful API中,我对ActiveRecord类中的某些数据库列“X”进行了唯一性验证,并且我使用activerecord-import gem来批量保存数据。在以下两种情况下,我的应用都应拒绝请求:
似乎(1.)工作正常,但(2.)不是。这是预期的(可能是因为ActiveRecord唯一性验证是在db之外“执行”),如果是,除了在导入新数据之前手动验证之外,还有简单的方法来处理这个问题吗?
答案 0 :(得分:1)
activerecord-import gem enforces validations by default,但可能以不同方式处理唯一性验证。如果数据库支持它,则会有一个on_duplicate_key_update
,如果找到重复的密钥,它将更新另一列。 More about this on the wiki。 MySql支持它。
因此,只要有尝试保存重复项,您就可以拥有一个通过on_duplicate_key_update
更新的标记类型列。或者你必须手动进行一次验证
修改强> 答案可能不正确,请参阅OP的评论以获取详细信息。