0
나는 다음과 같은 코드에 문제가
User < AR
acts_as_authentic
belongs_to :owner, :polymorphic => true
end
Worker < AR
has_one :user, :as => :owner
accepts_nested_attributes_for :user
end
Employer < AR
has_one :user, :as => :owner
accepts_nested_attributes_for :user
end
I 사용자 유형에 따라 등록 양식을 작성하고 싶습니다, 및 사용자 이름 및 암호 인증 필드를 포함하는 . 현재이 작업을 수행합니다.
UserRegistrationController < AC
#i.e. a new Employer
def new
@employer = Employer.new
@employer.build_user
end
...
end
다음으로 사용자 필드는 fields_for
입니다. 모든 뷰 렌더링 괜찮아요,하지만 여기에 잡기 : 나는 사용자를 구축 할 수 없다, 그것은 :password
잘못된 방법입니다, 그래서 나는 인증 논리가 무시되었습니다 같아요. 어떻게해야합니까? 내가 잘못하고 있니? 단일 테이블 상속을 위해 다형성 연관을 삭제해야합니까? 내가하는 일이 무엇이든 Authlogic으로 잘 작동하는지 확인해야합니다.
안녕하세요. ! 나는 그것을 밖으로 시도 할 것이다. 생성 작업에서 무엇을 저장해야합니까? 둘 다 별도로 저장해야합니까? 나는 has_one 연관성을 고수하겠다. 게다가, 나는 지금 공간에 대해 그렇게 걱정하지 않는다. – ferparra
둘 다 별도로 저장해야한다고 생각합니다. Rails는 다형성 관계의 다른 끝에있는 모델 유형을 판별 할 수 없습니다. 시도 | @employer = Employer.new (params [: 고용주]) | @ employer.save | @user = User.new (params [: user] .merge! (: owner => @employer)). 모델에서 accepts_nested_attributes_for를 제거해야합니다. – mark
원래 양식 정의에서 소유자 필드에 사용자 속성을 정의하지 않았습니까? 아마도 이것이 작동해야하기 때문에 또 다른 대답을 게시 할 것입니다.^원래 응답으로 편집을 참조하십시오. – mark