首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在RubyonRails中验证一对ID的唯一性?

如何在RubyonRails中验证一对ID的唯一性?
EN

Stack Overflow用户
提问于 2018-03-28 08:20:21
回答 2查看 0关注 0票数 0

假设在Ruby中进行以下数据库迁移:

代码语言:javascript
复制
    create_table:question_votes do | t |
      t.integer:user_id
      t.integer:question_id
      t.integer:投票

      t.timestamps
    结束

进一步假设我希望DB中的行包含唯一的(user_id,question_id)对。

代码语言:javascript
复制
validates_uniqueness_of:user_id,:question_id

似乎只是简单地将行设为用户标识唯一,并且通过问题标识唯一,而不是唯一的一对。

EN

回答 2

Stack Overflow用户

发布于 2018-03-28 17:16:23

代码语言:javascript
复制
validates_uniqueness_of :user_id, :scope => [:question_id]

如果需要包含另一列(或更多),则可以将其添加到范围。例:

代码语言:javascript
复制
validates_uniqueness_of :user_id, :scope => [:question_id, :some_third_column]
票数 0
EN

Stack Overflow用户

发布于 2018-03-28 17:28:07

如果使用mysql,则可以使用唯一索引在数据库中执行此操作。是这样的:

代码语言:javascript
复制
add_index :question_votes, [:question_id, :user_id], :unique => true

当尝试保存question_id / user_id的doubled-up组合时,这会引发异常,因此必须尝试并找出要捕获和处理的异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档