Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – Rails唯一性约束,并为null列匹配db唯一索引大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的迁移文件中有以下内容
def self.up
    create_table :payment_agreements do |t|
      t.Boolean    :automatic,:default => true,:null => false
      t.String     :payment_trigger_on_order
      t.references :supplier
      t.references :seller
      t.references :product
      t.timestamps
    end
  end

我想确保如果指定一个product_id,它是唯一的,但我也想允许null,所以我在我的模型中有以下内容:

validates :product_id,:uniqueness => true,:allow_nil => true

工作非常好,但我应该添加一个索引到迁移文件

add_index :payment_agreements,:product_id,:unique => true

显然,当为product_id插入两个空值时,这将抛出异常.我可以简单地省略迁移中的索引,但是我有机会获得两个相同product_id的PaymentAgreements,如下所示:Concurrency and integrity

我的问题是处理这个问题的最好/最常用的方法是什么

解决方法

这取决于您的数据库服务器.
至于mysql:

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – Rails唯一性约束,并为null列匹配db唯一索引全部内容,希望文章能够帮你解决ruby-on-rails – Rails唯一性约束,并为null列匹配db唯一索引所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。