나는 사용자 모델을 가지고 있습니다. 사용자는 role1, role2, role3 중 하나의 역할을 가질 수 있습니다. 이것은 사용자 모델의 '역할'열에 의해 표현됩니다. 각 역할에는 고유 한 프로필이 있습니다. role1_profile, role2_profile, role3_profile. 각 * _profile은 모델입니다.레일스의 선택적 또는 조건부 모델 연관
레일스에서이 선택적 연결을 어떻게 표현합니까?
내가 그것을 두 가지 방법으로 시도했다 :
class User < ActiveRecord::Base
#FIRST WAY
if current_user.role == 'role1' then has_one :role1_profile end
#SECOND WAY
has_one :role1_profile, :conditions => ['user.role = ?', 'role1']
end
하지만 그건 작동하지 않습니다. 이 작업을 수행하는 올바른 방법은 무엇입니까?
+1 코드를 입력하기가 너무 어려웠 기 때문입니다. –
감사합니다. 나는 당신의 해결책이 완벽하다고 생각합니다. Rails에는 항상 방법이 있지만 길을 모르는 경우 이상한 방법으로 솔루션을 구현하는 경향이 있습니다. – hrdwdmrbl
@ jackack 나는 당신의 접근이 전혀 이상하다고 생각하지 않는다. 정반대로 매우 논리적이었습니다. 그리고 ActiveRecord가 개선/확장 될 수있는 곳을 잘 지적 할 수 있습니다. 어쨌든 일이 잘되어서 다행입니다. –