사용자 열이 있습니다. 회사 열이 있습니다. 즉 비어 있거나 null이거나 일부 값이 포함될 수 있습니다. 그러나 어떤 가치가 포함되어 있다면 그것은 유일해야합니다. 내 모델에서 고유 속성을 사용하는 경우 열에 대해 여러 개의 null 값을 허용하지 않습니다. Sqlite3 db 사용하고 있습니다.null 값을 제외한 열의 고유 제한
답변
모델 유효성 검사를 사용하여 처리 할 수 있습니다. 아마도 다음과 같은 것일 수 있습니다 :
class User < ActiveRecord::Base
attr_accessible :company
validate do
if self.company && User.where(company: self.company).first
raise ArgumentError, "Company must be `nil` or unique"
end
end
end
이것은 약간의 해킹이지만 사용자의 요구에 맞아야합니다.
'User.where (company : self.company) .exists?'가'first'보다 나은 접근 방법 일 수 있습니다. –
내가이 기능을 수행하면 새 사용자가 만들어 질 때마다 실행하고 싶습니다. 어떻게 그렇게 할 수 있을까요? –
'validates'는'User'가 생성되거나 업데이트 될 때마다 실행될 것이기 때문에 별도의 메소드를 생성 할 필요가 없습니다. – Eugene
- 1. null이 허용되는 열의 고유 제한
- 2. DB2 - 다중 열의 고유 제한
- 3. 여러 열의 고유 인덱스에서 한 열에 NULL 값을 허용하는 방법
- 4. 다른 열과 함께 고유 제한 조건을 형성하도록 열의 값을 업데이트하십시오.
- 5. 열의 고유 값을 가진 테이블에서 행 선택
- 6. SyBase : 열의 값을 기준으로 고유 인덱스 만들기
- 7. AWS Dynamo에서 열의 고유 값을 얻으려면 어떻게해야합니까?
- 8. 날짜/시간 열의 null 값을 C#
- 9. 다른 열의 이전 값을 기반으로 null 열의 값 채우기
- 10. 삭제 후 제한 예외 고유 제한 조건
- 11. 고유 제한 조건 -이 열은 현재 고유 값을 갖지 않습니다.
- 12. oracle db의 조건부 고유 제한
- 13. 않습니다 여러 열의 고유 제한 조건에 성능 문제가 있음 - 오라클
- 14. 고유 한 열 값을 선택하고 다른 열의 관련 값을 추가하십시오.
- 15. 여러 열의 Null 필터링
- 16. 고유 제한 vs 고유 인덱스
- 17. UUID 열의 NULL 값
- 18. 비 키 속성에 고유 제한 사항 부여
- 19. UNIQUE 인덱스가있는 열의 복수 NULL 값
- 20. 장고 고유 제한 조건
- 21. JOIN 2 테이블은 2 열의 고유 값을 얻습니다.
- 22. Oracle 데이터베이스의 고유 선택에 대한 고유 제한
- 23. 고유 ID가있는 열의 합?
- 24. 다른 열의 값을 기반으로 고유 열 개수를 사용한 쿼리 최적화
- 25. 고유 제한 열에는 하나의 NULL 값만 포함 할 수 있습니다.
- 26. 한 열의 결과 제한
- 27. NULL 열에 고유 인덱스를 만드는 방법은 무엇입니까?
- 28. CakePHP에서 Null 행을 제외한 업데이트
- 29. django '열의 null 값'
- 30. 다른 열의 고유 한 값을 기반으로 Excel 열의 값을 얻는 방법
중복 : http://stackoverflow.com/questions/191421/how-to-create-a-unique-index-on-a-null-column – forker
레일에서 어떻게 할 수 있습니까? –