可设计的邀请-用户组的单独邀请表单

时间:2018-07-31 10:00:58

标签: ruby-on-rails devise

我的应用有两种不同类型的用户组。 “客户”和“员工”。管理员发送邀请时,我正在尝试为两个组创建不同的表单,以确保为每个组填写适当的输入。

请让我知道该怎么做?

2 个答案:

答案 0 :(得分:0)

可能的解决方案之一是添加一列(比如说user_type),比如说string。然后,在预先创建用户时(在您的情况下邀请),您需要将该列设置为'customer''staff'

然后,您可以为注册表单创建两个部分:_staff_form.html.erb_customer_form.html.erb。呈现用户注册表单时,您可以简单地为用户类型呈现= render "#{@user.user_type}_form"

使用类似的方法,您可以设置验证。在您的user模型中,您可以添加

validate :fields_by_user_type

def fields_by_user_type
  if user_type == 'staff'
    return if department.present?
    errors.add(:department_id, "Staff member must have an department assigned")
  else
    return if credit_card.present?
    errors.add(:credit_car, "Customer must have a credit card")
  end
end

答案 1 :(得分:0)

所以我创建了另一个Devise模型,现在我具有以下结构- -员工模型(Devise) -用户模型(Devise)

但是,我的管理员是“用户”模型的一部分,只能邀请用户而不能邀请“职员”。如何让管理员同时邀请他们?