我不知道如何创建一个工人和一个协会。所以我能够将它们联系在一起。我在用户中有一个类型colulm 这是我的表格(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" %>
这是我的模特:
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和Worker的注册表单。 我在Workers表中列了姓名,年龄和地址,我想在注册表中填写。
它应该是嵌套表单吗?我应该在worker和User表之间创建关联。
祝你好运, Rails初学者
答案 0 :(得分:4)
好的找到了答案,你需要的是为你的子类添加路由,然后将用户直接添加到相关的路由,比如
devise_for :companies
devise_for :workers
然后你可能想要为每个人生成视图
script/rails generate devise:views companies
如果您的视图中没有重大差异,您可以在公司模板中的用户模板中呈现文件,如此
render :file => 'users/registrations/new'
在您的控制器和视图中,您仍将使用标准的user_signed_in?
希望如果找到更好的方法,请告诉我
答案 1 :(得分:0)
我认为您正在寻找Worker
has_one User
。我认为您不需要从User继承您的Worker类。如果您想在创建工作人员后创建用户,可以在after_create回调中执行此操作。