2013-06-09 4 views
1

has_many associations을 가진 사용자가 있습니다. 연결에는 제공자 필드가 있습니다. 사용자에게 제공 업체가 있는지 확인하고 싶습니다. 공급자가 사용자 테이블의 필드 인 경우 그냥 할 것입니다 provider.blank? has_many 연결을 통해 도달 할 때 동일한 검사를 수행하려면 어떻게해야합니까?관련 모델에서 사용자 레코드가 존재하는지 확인하십시오.

편집 :

class User < ActiveRecord::Base 

    has_many :authentications 

end 

class Authentications < ActiveRecord::Base 

    belongs_to :user 

end 

의 Authentications 테이블이 사용자의 Authentications 중 하나를 사용하여 다음 제공자를 포함 할 경우 확인할 수

:provider 
:user_id 
:uid 
:id 

답변

2

다음 필드 :

user.authentications.any? {|a| a.provider } 

any? 반복을 배열을 넘어서을 반환합니다. 배열의 각 요소를 전달할 때 블록이 true를 반환하면3210입니다. 배열이 하늘 일 때 (즉, 인증 없음) false을 반환합니다.

+0

사용자 has_many 연관. 공급자는 연관 테이블의 필드입니다. – Arel

+0

그냥 내 질문을 일부 코드로 업데이트했습니다. – Arel

+0

고마워, 내 대답을 편집 –

관련 문제