IT

Rails : 두 열의 고유성 확인 (함께)

lottoking 2020. 8. 7. 07:47
반응형

Rails : 두 열의 고유성 확인 (함께)


기둥 이있는 Release모델이 있습니다. 동일한 / 조합 을 공유 해서는 안됩니다 .mediumcountryreleasesmediumcountry

포장재를 사용하여 레일 유효성을 검사합니까?


옵션 과 함께 고유성 유효성 검사를 사용할 수 있습니다 scope.

또한 고유 작성하기 전에 검사 할 때 새 레코드가 유효성 검사를 통과하지 못하도록 DB에 추가해야합니다.

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


위의 모든 답변에는 모델에서 여러 속성의 고유성을 확인하는 방법이 없습니다. 아래 코드는 여러 속성을 사용하는 방법을 알려줍니다.

validates :country, uniqueness: { scope: [:medium, :another_medium] }

country값이있는 모든 행에서의 고유성을 확인합니다 .mediumanother_medium

참고 : 위 열에 강화를 추가하는 것을 잊지 않습니다. 이렇게하면 빠른 검색이 보장되고 고유 레코드에 대한 DB 수준 유효성 검사가 추가됩니다.


:scope다음과 같이 유효성 검사기에있는 변수를 많은 수 있습니다 .

validates_uniqueness_of :medium, scope: :country

더 많은 예제 문서참조하십시오 .

참고 URL : https://stackoverflow.com/questions/34424154/rails-validate-uniqueness-of-two-columns-together

반응형