【问题标题】:Multiple models with Sorcery gem带有魔法宝石的多个模型
【发布时间】:2019-08-22 14:56:49
【问题描述】:

我的目标是拥有一个用户模型和一个供应商模型。将用户视为公司,将供应商视为员工,公司可以在其中创建多个员工帐户以与公司关联。

我已将 Sorcery 设置为具有 User 模型和 Vendor 模型,但登录时是我的问题所在。

巫术文件的最后是这样的:

  config.user_class = "User"

我试过了:

  config.user_class = "User" || "Vendor"

登录时,它只会搜索最先出现的模型。 这个:

  config.user_class = "User"
  config.user_class = "Vendor"

(两种顺序,反之亦然) 无论哪个是最后一个,该模型都有效。如果 Vendor 模型是最后一个,它将仅搜索 Vendor 模型。

我研究了 STI,但我看到的大部分内容是创建从一个模型继承的关联模型。对每个或任何一个进行身份验证的多个模型并不多。这是要进入的路线吗?

我需要用户和供应商都能够作为单独的帐户登录。

我过去曾使用 Devise 轻松创建多个模型,但 Sorcery 似乎出现问题?

有没有办法设置 Sorcery 以允许多个模型?

【问题讨论】:

    标签: ruby-on-rails ruby sorcery


    【解决方案1】:

    通过config/initializers/sorcery.rb 中的user.subclasses_inherit_config 设置,Sorcery 确实允许 STI。您可以将其设置为true,然后从 User 继承您的 Vendor 类。

    我从未使用过 Gem,但我会考虑将角色添加到您的用户类并使用授权。

    【讨论】:

    • 我尝试将 Vendor 模型添加到来自魔法 wiki 的模型中,但似乎在会话方面需要更多设置。要么,要么我完全错过了球。如果我要使用角色,我将如何通过单一模型通过关联进行关联?这就是我继续创建 2 的地方……想不出一种方法来建立从单个模型到自身的关联
    • 看起来有一个概念,自我参照模型,它就在我的脑海里。早该想到的。使用它而不是(切换到设计)创建多个身份验证模型会有什么缺点吗?
    • 如果您坚持使用 Sorcery,那么自引用模型似乎是最佳选择。
    • 没有坚持使用它,而是将其用于此应用程序以了解有关身份验证的更多信息。 Devise 做了所有事情,所以我只是想要一种更手动的方法来获得更多的理解。这似乎是目前最好的路线。谢谢
    猜你喜欢
    • 2015-07-08
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多