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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计可邀请 - 为用户组分隔邀请表单相关的知识,希望对你有一定的参考价值。

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

请告诉我怎么做这个?

答案

一个可能的解决方案可能是添加一个列(比如说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
另一答案

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

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

以上是关于设计可邀请 - 为用户组分隔邀请表单的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义字段添加到 devise_invitable 邀请表单

来自没有电子邮件邀请的 URL 的 Android 测试 Beta Apk

设计不受欢迎的服务条款

业务功能“二级分销”简单实现

无限级分销系统数据库表设计

推荐邀请使用Amazon Cognito