레일 5 has_many 기록을 중복 :방지는 다음과 같은 모델을 감안할 때
class Client < ApplicationRecord
has_many :preferences
validates_associated :preferences
accepts_nested_attributes_for :preferences
end
class Preference < ApplicationRecord
belongs_to :client
validates_uniqueness_of :block, scope: [:day, :client_id]
end
나는 아직도 클라이언트를 만드는 동안 환경의 배치를 만드는 * 중복 일에 환경을 만들 수 있어요. validates_uniqueness_of
유효성 검사를 실행할 때 client_id 외래 키를 사용할 수 없으므로 (겉으로보기)입니다. (* 중복 된 데이터가 저장되는 것을 방지하는 인덱스가 있지만 데이터베이스에 도달하기 전에 오류를 catch하고 사용자에게 친숙한 오류 메시지를 반환하고 싶습니다.)
ActiveRecord 유효성 검사를 통해 이러한 일이 발생하지 않도록 하시겠습니까?
편집 : This appears to be a known issue.
(즉'validate' 같은 자기 오프 방법 내 수업, 그래서 뭔가를했습니다)? – Kris
@Kris No. 관련하여, 'client_id' 존재 확인을 추가하면 (물론)'client_id'가 아직 존재하지 않기 때문에'client.save'가 실패합니다. – pdoherty926