나는 나의 API 응용 프로그램의 다음 구조를 가지고? 내가 작성하는 경우 :사용자가 앱간에 이메일을 가질 수 있도록 허용하려면 하나의 앱 안에 이메일을 저장할 수 없습니까?</p> <pre><code>class App < ActiveRecord::Base has_many :users end class User < ActiveRecord::Base belongs_to :app end </code></pre> <p>가 어떻게 사용자가 응용 프로그램 사이의 동일한 고유 이메일을 가질 수 있도록,하지만 하나의 응용 프로그램 내부 않습니다
class User < ActiveRecord::Base
belongs_to :app
validates :email, uniquiness: true
end
은 전 세계적으로 모든 사용자들 사이에서 이메일의 고유성을 확인합니다,하지만 난 단지 사용자가 속한 특정 응용 프로그램 모델의 사용자들 사이의 유효성을 검사합니다.
validates :email, uniquness: { scope: :app }
더 :
다른 단어, 나는 사용자가이 유효성 검사를 제한하는 범위를 사용하여 ID 2.
에서 발견 또는'validates_uniqueness_of 사용할 수 있습니다 : 이메일, 범위 : app' 및 [액티브 ::되는 검증 :: ClassMethods 워드 프로세서 (HTTP 읽기 : // API. rubyonrails.org/classes/ActiveRecord/V alidations/ClassMethods.html # method-i-validates_uniqueness_of) –
'add_index (: users, [: email, : app_id]), unique : true'와 같은 색인을 추가하는 것도 도움이 될 수 있습니다. –
@NicNilov 저는'validates'가 검증을 위해 선호되는 방법이라고 확신합니다. 'validates_uniqueness_of'는 오래된 방법입니다. 'validates_length_of','validates_presence_of' 등에 대해서도 마찬가지입니다. –