假设在Ruby中进行以下数据库迁移:
create_table:question_votes do | t |
t.integer:user_id
t.integer:question_id
t.integer:投票
t.timestamps
结束
进一步假设我希望DB中的行包含唯一的(user_id,question_id)对。
validates_uniqueness_of:user_id,:question_id
似乎只是简单地将行设为用户标识唯一,并且通过问题标识唯一,而不是唯一的一对。
发布于 2018-03-28 17:28:07
如果使用mysql,则可以使用唯一索引在数据库中执行此操作。是这样的:
add_index :question_votes, [:question_id, :user_id], :unique => true
当尝试保存question_id / user_id的doubled-up组合时,这会引发异常,因此必须尝试并找出要捕获和处理的异常。
https://stackoverflow.com/questions/-100007843
复制相似问题