나는 직업 게시판을 작성하고 있으므로 두 개의 사용자 모델과 고용주 및 신청자가 있습니다. 저는 devise를 사용하고 있습니다. 따라서이 문제를 다형성 관계와 함께 사용하는 것이 좋습니다.devise를 사용할 때 다형성 사용자 모델
일부 레일 콘솔 테스트를 통해 나는 devise에서 (리소스)가 모든 사용자 정보를 전달하고 그것이 신청자 또는 고용주 인 role_type을 전달하고 있음을 알고 있습니다. 그러나 그것은 nil로 설정되어 있으므로 사용자가 저장 중이지만 신청자 또는 고용주의 역할 유형이 저장되지 않습니다. 또한 사용자 테이블의 신청자 또는 고용주 테이블에는 아무 것도 저장되지 않습니다. 내 코드는 아래에 있지만 내 질문은 정말 어떻게 devise 리소스 해시 role_type 전달합니까? 아니면 이것이 불가능할 경우이 문제를 해결하는 가장 우아한 방법입니다.
많은 감사! 난 아무것도를 놓친 경우
또한 전체 프로젝트 코드는 여기 아래 https://github.com/PatGW/jobs
조회수 -> devise-> 사용자 -> new.html.erb
<h1>Sign Up</h1>
<%= form_for @user do |f| %>
<% if @user.errors.any? %>
<div class="error_messages">
<h2> Form is invalid</h2>
<ul>
<% for message in @user.errors.full_messages %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<p>
<%= f.label :email %><br />
<%= f.text_field :email %>
</p>
<p>
<%= f.label :password %><br />
<%= f.password_field :password %>
</p>
<p>
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %>
</p>
<p>
<%= radio_button_tag :role_type, "employer", :checked => false %><br />
<%= label :role_type, 'Employer' %>
</p>
<p>
<%= radio_button_tag :role_type, "applicant", :checked => true %><br />
<%= label :role_type, 'Applicant' %>
</p>
<p class="button"><%= f.submit %></p>
<% end %>
입니다
DevController에서 상속 한 UsersController
class UsersController < Devise::RegistrationsController
def new
super
end
def create
User.transaction do
super
after_sign_in_path(resource)
end
end
private
def after_sign_in_path(resource)
debugger
@user = User.new(params[:user])
if params[:role_type] == "coach"
role = Employer.create
else params[:role_type] == "player"
role = Applicant.create
end
end
end
안녕 Stobbej 시도해 봤지만 도움이되지 않습니다. 난 레일 디버거를 사용하여 주위에 놀았 있고 role_type 매개 변수가 devise 리소스에 전달되고 생성 메서드를 호출 할 때 저장되지 않는 것을 볼 수 있습니다. 비트가 어떤 아이디어를 엉망으로 만들었습니까? – PatGW