设计可邀请 - 为用户组分隔邀请表单

问题描述 投票:0回答:2

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

请告诉我怎么做这个?

ruby-on-rails devise
2个回答
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

0
投票

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

但是,我的管理员是Users模型的一部分,只能邀请用户而无法邀请员工。如何让管理员邀请两者?

© www.soinside.com 2019 - 2024. All rights reserved.