2011-01-10 1 views
4

Я не знаю, как создать рабочего и ассоциацию. Поэтому я могу связать их вместе. У меня есть тип colulm в пользователе.
Это моя форма (HTTP: // локальный: 3000/рабочие/sign_up):Rails разрабатывать регистрационную форму при наличии STI

<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" %> 

Это мои модели:

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 

Я хочу создать регистрационную форму, которые создают пользователя и Работник. У меня есть столбики в таблице «Рабочие», как имя, возраст и адрес, которые я хочу в регистрационной форме.

Должен ли он быть вложенной формой и должен ли я создать связь между рабочим столом и таблицей User.

С наилучшими пожеланиями, Rails для начинающих

ответ

0

Я думаю, что вы ищете Workerhas_oneUser. Я не думаю, что вам нужно наследовать свой рабочий класс от пользователя. Если вы хотите создать пользователя после создания Рабочего, вы можете сделать это в обратном вызове after_create.

+0

У меня есть ИПППЫ, потому что я хочу работника и компанию, чтобы иметь возможность войти в системе с той же формой входа. Я не понял, как создать форму. Я попытался создать форму вложенного рабочего в рабочей форме. Но это невозможно. Я также попытался добавить f.text_field: имя в регистрационную форму, и он либо не работает. –

4

Ok нашел ответ, что вы должны это добавить маршруты для подклассов, а затем dirrect пользователей к соответствующим маршрутам, как такого

devise_for :companies 
devise_for :workers 

И тогда вы, вероятно, будете хотеть сформировать мнение для каждого из них

script/rails generate devise:views companies 

Если нет каких-либо серьезных различий в вашей точки зрения, вы можете просто визуализировать файл из пользовательских шаблонов в шаблонах компании как так

render :file => 'users/registrations/new' 

В ваших контроллерах и в представлении вы по-прежнему будете использовать стандартный user_signed_in?

Надеется, что это помогает, дайте мне знать, если вы нашли лучший способ

Смежные вопросы