Ruby on rails 具有不同用户的中心

Ruby on rails 具有不同用户的中心,ruby-on-rails,devise,Ruby On Rails,Devise,我工作的网站有很多中心。每个中心可以有零个或多个课程。 我们需要一份注册表格来创建新的中心 用户与中心的关系 课程中心

我工作的网站有很多中心。每个中心可以有零个或多个课程。 我们需要一份注册表格来创建新的中心

用户与中心的关系
课程中心
正如你们所看到的,我正在使用Desive,但它与Center无关,因为我们希望能够在某个时候为一个具有不同权限的Center创建不同的用户

棘手的部分来了。注册表单应由用户字段和中心字段组成。在注册过程中,我们必须做到:

  • 创建新用户
  • 创建一个新中心
  • 将新用户分配到新中心
我采取的第一种方法是创建一个新视图(
views/center/new.html.erb
),然后我想在center的创建操作中管理用户字段(注册用户)。但是,我不确定如何将designe包含在等式中(在CentersController#create中)

如何在注册表格中包含中心字段?这样做的最佳方式是什么


谢谢。

一个选项是定制设计视图和控制器

首先生成这些文件:

rails g devise:views
rails g devise:controllers users
在新注册视图中,让我们为中心添加一个字段:

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
  # ...
  <div class="field">
    <%= label_tag :center %><br />
    <%= text_field_tag :center %>
  </div>
<% end %>

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
  # ...
  <div class="field">
    <%= label_tag :center %><br />
    <%= text_field_tag :center %>
  </div>
<% end %>
class Users::RegistrationsController < Devise::RegistrationsController
  # ...

  # POST /resource
  def create
    super
    # assuming Center just has a name attr
    @user.create_center(name: params[:center])
    @user.save
  end

  # ...
end