【发布时间】:2017-09-03 10:14:22
【问题描述】:
我的 UserGroups has_many 目前有以下迁移:通过关联:
class CreateUserGroups < ActiveRecord::Migration
def change
create_table :user_groups do |t|
t.integer :user_id, :null => false
t.integer :group_id, :null => false
t.timestamps null: false
end
end
end
具有以下模型和唯一约束:
class UserGroup < ActiveRecord::Base
belongs_to :user
belongs_to :group
validates_uniqueness_of :user, :scope => :group, :message => :not_unique
end
唯一性验证效果很好,但是如果我的应用程序中的竞争线程导致竞争条件并且它通过了应用程序级别的检查怎么办?如何编写迁移以防止数据库级别的用户和组在我的联接表中出现重复行?
【问题讨论】:
标签: mysql ruby-on-rails postgresql activerecord rails-migrations