【问题标题】:Maintaining nested model integrety with subdomains?维护与子域的嵌套模型完整性?
【发布时间】:2009-10-01 23:51:30
【问题描述】:

我有一个为每个“帐户”使用子域的应用。

根据我的阅读,"Tie all top-level requests off the current account (subdomain)" 是一个很好的做法。

例如

def find_users
  @users = @current_account.users
end

足够简单。但是当我开始有深度嵌套的路由时,我不能在不丢失子域范围的情况下使用浅层路由。

那么如何实现浅层路由并保持这种完整性?

我唯一想到的是:

  1. 在一些嵌套更深的模型中包含顶级(子域)的外键。但这似乎有点不合时宜。

  2. 使用 before_filter 回溯关联并检查子域是否成立。这似乎更合乎逻辑,但仍然感觉不太好。

有人对此有意见吗?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我最近一直在玩acts_as_restricted_subdomain,其中使用了外键,发现它非常容易使用:

    http://github.com/penguincoder/acts_as_restricted_subdomain
    

    它会覆盖 ActiveRecord 的默认行为,因此如果您指定了帐户/子域,则 User.find(123) 将与 Subdomain.users.find(123) 相同,这使得编写代码更加简洁,因为它允许您编写应用程序不用担心子域的限制。

    拥有外键的主要缺点是,随着数据集的扩展,数据库查询可能需要更长的时间来执行,但放入适当的命名索引应该可以缓解这种情况。

    【讨论】:

    • 谢谢,我会检查链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 2010-09-24
    • 2011-11-26
    • 2011-06-15
    • 2011-02-07
    • 2017-07-06
    相关资源
    最近更新 更多