2011-01-10 3 views
4

저는 근로자와 협회를 만드는 방법을 모릅니다. 그래서 저는 그것들을 서로 연결할 수 있습니다. 나는 사용자 유형 colulm 있습니다. 나는 사용자를 만들 등록 양식을 만들려면레일은 STI를 가지고있을 때 등록 양식을 고안합니다.

Class Worker < User 
devise :database_authenticatable, :registerable 
end 

Class Company < User 
devise :database_authenticatable, :registerable 
end 

Class User < Appliaction::Base 
devise :database_authenticatable, :registerable 
end 

:

<h2>Create Worker</h2> 

    <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %> 
     <%= devise_error_messages! %> 

     <p><%= f.label :email %><br /> 
     <%= f.text_field :email %></p> 

     <p><%= f.label :kodeord %><br /> 
     <%= f.password_field :password %></p> 

     <p><%= f.label :bekraeft_kodeord %><br /> 
     <%= f.password_field :password_confirmation %></p> 

     <p><%= f.submit "Create" %></p> 
    <% end %> 

<%= render :partial => "devise/shared/links" %> 

이 내 모델입니다 (: // localhost를 : 3000/노동자/sign_up HTTP)
이것은 내 양식입니다 및 노동자. 나는 등록 양식에서 원하는 Name, Age 및 Adress로 Workers 테이블에 colum을 가지고 있습니다.

중첩 된 양식이어야하며 작업자와 사용자 테이블 간의 연결을 만들어야합니다.

안부, 레일 난 당신이 Workerhas_oneUser을 찾고 생각

답변

0

을 초보자. User에서 Worker 클래스를 상속받을 필요가 없다고 생각합니다. Worker를 만든 후에 User를 만들려면 after_create 콜백에서 할 수 있습니다.

+0

내가 같은 로그인 양식을 사용하여 로그인 할 수 있도록 직원과 회사를 원하기 때문에 나는 STI를 찾을 경우 알려 주시기 도움이되기를 바랍니다. 나는 양식을 만드는 방법을 알아 내지 못했습니다. 나는 근로자 형태로 중첩 된 근로자 형태를 만들려고 노력했다. 그러나 그것은 불가능합니다. 나는 또한 f.text_field : name을 등록 양식에 추가하려고 시도했는데 어느 것도 작동하지 않습니다. –

4

확인은

devise_for :companies 
devise_for :workers 

같이, 당신은 관련 경로에 사용자를 당신의 서브 클래스 경로를 추가 한 다음 dirrect하는 무슨 대답을 발견 그리고 당신은 아마보기를 생성 할 것 보기에는 큰 차이가없는 경우 그들 각각에 대한

script/rails generate devise:views companies 

당신은 너무

처럼 회사 템플릿의 사용자 템플릿에서 파일을 렌더링 할 수

컨트롤러와 뷰에서 여전히 표준 user_signed_in?

은 당신이 더 나은 방법