4

I dont know how to create a worker and a association. So i am able to link those together. I have a type colulm in user.
This is my form(http://localhost:3000/workers/sign_up):

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

This is my models:

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

I want to create a register form that create a User and a Worker. I have colums in Workers table as Name, Age and Adress that i want in the registration form.

Should it be a nested form and have should i create the association between worker and User table.

Best regards, Rails beginner

Rails beginner
  • 14,321
  • 35
  • 137
  • 257

2 Answers2

4

Ok found the answer, what you have to is add the routes for your subclasses, and then dirrect the users to the relevant routes, like such

devise_for :companies
devise_for :workers

And then you probably going to want generate the view for each of them

script/rails generate devise:views companies

If there are no major differences in your view you can just render the file from the user templates in your companies templates like so

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

In your controllers and view you will still use the standard user_signed_in?

Hope it helps let me know if you find a better way

Giovann
  • 41
  • 2
0

I think you're looking for Worker has_one User. I don't think you need to inherit your Worker class from User. If you want to create a User after creating a Worker, you can do so in a after_create callback.

Bjorn
  • 5,272
  • 1
  • 24
  • 35
  • I have a STI because i want worker and company to be able to login with the same login form. I dont have figured out how to create the form. I have tried to create a nested worker form in worker form. But it is impossable. I have also tried to add f.text_field :name to the registration form and it either is not working. – Rails beginner Jan 10 '11 at 17:54