我有以下联接表:
class ContactFormUsership < ApplicationRecord
belongs_to :user
belongs_to :contact_form
validates :user_id, presence: true, uniqueness: { scope: :contact_form_id }
end
它确保没有重复
user
/
contact_form
创建行时进行配对。
我还在该表上设置了索引,以确保db级别的唯一性:
t.index ["user_id", "contact_form_id"], name: "index_contact_form_userships_on_user_id_and_contact_form_id", unique: true
test 'An error is raised if a user is added to a form more than once' do
contact_form = ContactForm.create
user = users(:user_1)
assert_raises(ActiveRecord::RecordInvalid) do
2.times do
contact_form.users << user
end
end
end
如何在db级别测试唯一性?有没有办法
<<