首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >唯一性验证rails 4

唯一性验证rails 4
EN

Stack Overflow用户
提问于 2017-01-13 23:57:03
回答 1查看 52关注 0票数 2

我的模型中有这样的唯一性验证:

代码语言:javascript
运行
复制
validates_uniqueness_of :source_id,
                          scope: [:year_id],
                          conditions: -> { where(comment_type_id: CommentType.final.id) },
                          message: %(
                            There can be only one final comment per year
                          )

我有两种评论类型,'CommentType.internal‘和'CommentType.final’,前者可以多次添加到评论表中,后者可以保存一次,但可以通过更新操作进行修改。

我可以用最终的comment_type_id保存一条记录,但是当我想创建另一条记录时,不管我使用的是哪个commentary_type_id,它仍然无法通过唯一性验证。

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-01-14 02:09:15

这对我来说很有效,我会为任何其他面临同样问题的人回答:

代码语言:javascript
运行
复制
validates_uniqueness_of :comment_type_id,
                          scope: [:year_id, :source_id],
                          if: ->(cmt) { cmt.comment_type_id == CommentType.final.id) },
                          message: %(
                            There can be only one final comment per year
                          )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41638609

复制
相关文章

相似问题

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