小编典典

Rails:验证两列的唯一性(一起)

all

我有一个Release带有mediumcountry列的模型(等等)。不应该有releases相同的medium/country组合。

我将如何将其编写为 Rails 验证?


阅读 61

收藏
2022-08-02

共1个答案

小编典典

您可以对选项使用唯一性验证。scope

此外,您应该向数据库添加一个唯一索引,以防止新记录在写入前同时检查时通过验证:

class AddUniqueIndexToReleases < ActiveRecord::Migration
  def change
    add_index :releases, [:country, :medium], unique: true
  end
end



class Release < ActiveRecord::Base
  validates :country, uniqueness: { scope: :medium }
end
2022-08-02