1
다음 코드 (레일 3.0.10)을 가지고? 또는 다른 말로하면, 어떻게 확인할 수 있도록 유효성 검사가 여전히 존재합니까? 아니면 뭔가 잘못하고있는 걸까요?validates_presence_of 및 저장되지 않은 단체
깨끗한 솔루션을 찾고 있습니다. 따라서 사용자 모델을 데이터베이스에 저장하는 공급자 모델에서 유효성 검사 콜백을 제안하면 다시 시도 할 필요가 없습니다.
다음 코드 (레일 3.0.10)을 가지고? 또는 다른 말로하면, 어떻게 확인할 수 있도록 유효성 검사가 여전히 존재합니까? 아니면 뭔가 잘못하고있는 걸까요?validates_presence_of 및 저장되지 않은 단체
깨끗한 솔루션을 찾고 있습니다. 따라서 사용자 모델을 데이터베이스에 저장하는 공급자 모델에서 유효성 검사 콜백을 제안하면 다시 시도 할 필요가 없습니다.
사용 :
class User < ActiveRecord::Base
has_many :providers, :inverse_of => :user
end
class Provider < ActiveRecord::Base
belongs_to :user, :inverse_of => :providers
validates :user, :presence => true
end
inverse_of *입니다 레일 *에서 좋은 생각 - 증거? – jdoe
많은 경험. OP의 코드가 작동하지 않는다는 사실 등 – iHiD
"나쁜 아이디어"... pfff. 그것은 기본적으로 중첩 된 속성과 동일한 거래입니다 - 당신은 그것들을 나쁜 생각이라고 생각합니까? 어쨌든 긴 이야기는 짧습니다. Omniauth와 Twitter가 정확해야합니다. 트위터는 비어있는 사용자 레코드를 저장하고 싶지 않은 전자 메일을 제공하지 않기 때문에 요청간에 발생하기 때문에 트랜잭션으로 롤업 할 수 없습니다. 따라서 두 모델을 먼저 작성하고 두 모델이 모두 유효한 경우에만 저장해야합니다. 아. 그리고 나. 세이브 콜을 하는게 아니야. Devise가 그렇게합니다. –