【问题标题】:Ruby on Rails -- validating a unique record, not just unique attributes of a recordRuby on Rails——验证唯一记录,而不仅仅是记录的唯一属性
【发布时间】:2015-12-23 16:25:41
【问题描述】:

这可能是一个非常重要的问题,但我试图只允许名为“Favorites”的具有“lightbulb_id”和“student_id”属性的表的唯一记录。我知道模型验证

class Person < ActiveRecord::Base
  validates_uniqueness_of :user_name
end

但是,我想验证整个记录的唯一性(所以lightbulb_idstudent_id 的组合)。因此,lightbulb_idstudent_id 可以重复(学生可以“收藏”多个灯泡 ID),因此相同的 student_id 可以在收藏夹表中以不同的灯泡 ID 出现多次。但具体组合不应该重复(一个学生不能两次喜欢一个灯泡)

这可能是一个非常基本的问题,任何建议将不胜感激。谢谢。

【问题讨论】:

    标签: ruby-on-rails validation validates-uniqueness-of


    【解决方案1】:

    您可以尝试以下验证规则:

    validates_uniqueness_of :student_id, scope: [:lightbulb_id]
    

    【讨论】:

    • validates :lightbulb_id, uniqueness: { scope: :student_id } 我尝试了这个并在我的收藏夹表上添加了一个唯一索引,它似乎正在工作。我不完全确定范围规范是如何工作的。它是否检查合并范围中指定的 student_id 和属性的唯一性?
    猜你喜欢
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多