2011-01-10 12 views
4

私はワーカーとアソシエーションの作成方法を知らない。だから一緒にリンクすることができます。私はユーザーのタイプの欄を持っています。
これは、(のhttp:// localhostを: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 

私はユーザーを作成、登録フォームを作成したいですと労働者。 私は、登録用紙に必要な氏名、年齢、住所として労働者のテーブルに列があります。

ネストされたフォームであり、ワーカーとユーザーテーブルの間の関連付けを作成する必要がありますか。

敬具、 Railsは、私はあなたがWorkerhas_oneUserを探しているのだと思い

答えて

0

初心者。あなたのWorkerクラスをUserから継承する必要はないと思います。ワーカーを作成した後にユーザーを作成する場合は、after_createコールバックで作成できます。

+0

より良い方法を見つけた場合、私は労働者と会社が同じログインフォームを使ってログインできるようにしたいので、私はSTIを持って知っているお役に立てば幸いです。私はフォームを作成する方法を理解していない。私はワーカーフォームでネストされたワーカーフォームを作成しようとしました。しかし、それは不可能です。私はf.text_field:nameを登録フォームに追加しようとしましたが、どちらかが動作していません。 –

4

OK]をクリックして、このような

devise_for :companies 
devise_for :workers 

のように、あなたは、関連するルートにユーザーをあなたのサブクラスのルートを追加し、dirrectているかの答えを、発見し、あなたはおそらくビューを生成するつもりあなたのビューには大きな違いが存在しない場合は、それらのそれぞれの

script/rails generate devise:views companies 

あなただけそう

のようなあなたの会社テンプレートでユーザーテンプレートからファイルをレンダリングすることができます

コントローラとビューでは、引き続き標準のuser_signed_inを使用しますか?

は、それは私はあなたが

関連する問題