Ruby on rails Rails应用程序作为多个应用程序的后端

Ruby on rails Rails应用程序作为多个应用程序的后端,ruby-on-rails,Ruby On Rails,我们正在开发一个Rails应用程序,它将作为多个应用程序的后端。Rails应用程序将有一个web CMS,允许管理员用户管理其移动应用程序(一个管理员用户可以有1..N个移动应用程序) 同样的Rails应用程序也将作为这些移动应用程序的API。移动应用程序彼此完全分离,彼此之间不共享任何数据。我们有不同角色的用户(在CMS中管理其应用程序的global_admin,在CMS中管理其应用程序位置的place_manager,以及移动应用程序的用户)。这些用户不在应用程序之间共享(如果用户注册了移动

我们正在开发一个Rails应用程序,它将作为多个应用程序的后端。Rails应用程序将有一个web CMS,允许管理员用户管理其移动应用程序(一个管理员用户可以有1..N个移动应用程序)

同样的Rails应用程序也将作为这些移动应用程序的API。移动应用程序彼此完全分离,彼此之间不共享任何数据。我们有不同角色的用户(在CMS中管理其应用程序的global_admin,在CMS中管理其应用程序位置的place_manager,以及移动应用程序的用户)。这些用户不在应用程序之间共享(如果用户注册了移动应用程序,他将只能在该应用程序中登录;因此,如果他想登录另一个移动应用程序,他需要再次注册)

实现这一目标的最佳方法是什么?我们正在考虑:

  • 选项1:我们可以有一个单一的
    用户
    模型,在不同的应用程序上有不同的角色(
    全局管理
    在应用程序1上,
    用户
    在应用程序2上,
    经理
    在应用程序3上……)。如果用户注册了应用程序1,则会创建一条记录,如果用户注册了应用程序2,则我们只会在其中添加一个角色,但他认为自己创建了一个新帐户
  • 选项2:我们可以为每个应用程序上的每个用户创建一个记录(删除电子邮件字段上的唯一性约束)
  • 选项十:想法
先谢谢你

这些用户不会在应用程序之间共享(如果用户在 移动应用程序,他将只能在该应用程序中登录;所以如果他愿意的话 要登录另一个移动应用程序,他需要再次注册)

在我看来,这是三种不同的Rails应用程序。显然,这些应用没有任何共同之处,尤其是没有共享数据

这些用户不会在应用程序之间共享(如果用户在 移动应用程序,他将只能在该应用程序中登录;所以如果他愿意的话 要登录另一个移动应用程序,他需要再次注册)

在我看来,这是三种不同的Rails应用程序。显然,这些应用没有任何共同之处,尤其是没有共享数据

这些用户不会在应用程序之间共享(如果用户在 移动应用程序,他将只能在该应用程序中登录;所以如果他愿意的话 要登录另一个移动应用程序,他需要再次注册)

在我看来,这是三种不同的Rails应用程序。显然,这些应用没有任何共同之处,尤其是没有共享数据

这些用户不会在应用程序之间共享(如果用户在 移动应用程序,他将只能在该应用程序中登录;所以如果他愿意的话 要登录另一个移动应用程序,他需要再次注册)


在我看来,这是三种不同的Rails应用程序。显然,这些应用没有任何共同之处,尤其是没有共享数据。

如果您想将单个
rails
应用程序用于多个移动应用程序,我建议使用以下方法

  • 对于
    用户
    您可以使用不同的API返回不同类型的
    用户
    ,具体取决于应用程序需求
  • 用于区分每个应用程序的用户(这样,用户只能有一个表,但型号不同)

  • 如果您想将单个
    rails
    应用程序用于多个移动应用程序,我建议您采用以下方法

  • 对于
    用户
    您可以使用不同的API返回不同类型的
    用户
    ,具体取决于应用程序需求
  • 用于区分每个应用程序的用户(这样,用户只能有一个表,但型号不同)

  • 如果您想将单个
    rails
    应用程序用于多个移动应用程序,我建议您采用以下方法

  • 对于
    用户
    您可以使用不同的API返回不同类型的
    用户
    ,具体取决于应用程序需求
  • 用于区分每个应用程序的用户(这样,用户只能有一个表,但型号不同)

  • 如果您想将单个
    rails
    应用程序用于多个移动应用程序,我建议您采用以下方法

  • 对于
    用户
    您可以使用不同的API返回不同类型的
    用户
    ,具体取决于应用程序需求
  • 用于区分每个应用程序的用户(这样,用户只能有一个表,但型号不同)

  • 我认为选择1在你的情况下会很有效。您可以在
    应用程序
    用户
    之间设置一个
    有多个:通过
    关系,该关系将包含有关该特定应用程序的用户角色的信息(假设每个应用程序中每个用户只有一个角色)


    使用这种方法,工作流程将与您描述的有所不同。如果用户根本没有注册(即不存在该电子邮件的记录),他们将需要注册(电子邮件+密码),此时您将创建用户记录(使用哈希密码)并设置与移动应用程序的关联。如果用户已经注册,您不希望他们再次输入新密码,只需设置关联即可。这可以通过以下方式处理。希望这有帮助。

    我认为选项1在您的情况下会很有效。您可以在
    应用程序
    用户
    之间设置一个
    有多个:通过
    关系,该关系将包含有关该特定应用程序的用户角色的信息(假设每个应用程序中每个用户只有一个角色)

    使用这种方法,工作流程将与您描述的有所不同。如果用户根本没有注册(即不存在该电子邮件的记录),他们将需要注册(电子邮件+密码),此时您将创建用户记录(使用哈希密码)并设置与移动应用程序的关联。如果用户已经注册,您不希望他们再次输入新密码,您只需要