Mongoid 3 - Check for uniqueness of composite key의 조언에 따라 2 개의 필드에 고유 한 제약 조건이있는 모델을 사용하려고합니다.복합 키에 대한 몽고 이드 고유 제약
ID입니다 선언은 이것이다 :
field :_id, type: String, default: &method(:generate_id)
private
def generate_id
user.id.to_s + offering.id.to_s
end
하지만 이렇게하면은 그것을 사용자와 제공을 가지고 전에 ID를 생성하려고하기 때문에 나는 새를 통해 개체를 인스턴스화 할 때, 그것은 히스테리의 발작을 가지고 (맞다) id를 사용하지 않으려 고한다. 나는 사용자를 전달할 수 있으며 생성자 매개 변수로 제공하고 모든 것이 좋습니다.
제 질문은 이것이 올바른 방법인가요? 유일한 제약 조건을 얻기 위해해야 할 모든 둔한 기질을 감안할 때 더러워진 느낌입니다. 이 코드는 전혀 공개하지 않습니다. 더 좋은 방법이 있습니까?
db.registrations.ensureIndex({ "user_id": 1, "offering_id": 1 }, { unique: true })
은 Mongoid이 인덱스를 생성 모델에이를 추가하려면 :
index({ user_id: 1, offering_id: 1 }, { unique: true })
당신과 같이 자바 스크립트로이 인덱스를 만들 것입니다 일반 MongoDB를 통해
이것은 내가 원하는 것보다 훨씬 더 많이 느껴지며 코드는 실제로 성취하고자하는 것을 반영합니다. 감사! –