我在Postgres上使用rails。
我有2张桌子,可以说houses
(名称:字符串)和users
(名称:字符串),而user belongs_to house
,我们在房子上有一个unique
键,所以我们不会有两个同名的房子。
当某人想要创建新用户时,他发送{user: Omer, house: red}
并在轨道上运行以下代码
house = House.find_or_initialize_by(name: params[:house])
house.users.create(name: params[:user])
问题是,当我运行多个代码片段时,由于并发性,即使我在表上具有唯一索引,我也会得到两个同名的房子。
根据我的模式
t.index ["name"], name: "index_houses_on_name", unique: true, using: :btree
我想念什么吗?