【问题标题】:Rails controllers for subdomains用于子域的 Rails 控制器
【发布时间】:2015-01-12 10:24:40
【问题描述】:

我想拥有多个子域(用于我公司中两个不同角色的雇主),并且它们之间共享一些资源。但是每个子域的行为和观点是不同的。

组织控制器和视图的最佳实践是什么(我认为在视图上放置很多 if 不是一件好事)。我应该为每个子域创建不同的控制器吗(我认为这不会很干)?我应该为资源创建一个基本控制器并在每个子域上从它们继承吗?你们有什么建议?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    在应用程序控制器中创建一个current_subdomain 方法并像设计current_user 一样使用它。如果子域之间的逻辑不同,请检查 current_subdomain

    def current_subdomain
      server_name = request.env["SERVER_NAME"])
      subdomain = server_name.split('.').first
    end
    

    【讨论】:

    • 这会落入if的问题,不是吗?
    • 正确,如果有大量代码重用,我不建议跨子域使用单独的控制器。在不了解您要解决的具体问题的情况下,我很难知道会有多少重叠。
    • 我有一个资源,我公司的销售人员可以创建和编辑,管理员可以对其进行编辑和批准与否。但是编辑表格我想完全不同。我知道我可以用强参数来限制编辑参数,但我从没想过把ifs 放在代码上是一件好事。
    • 只是出于好奇,为什么每个用户类型都在不同的子域上?
    • 我知道我可以使用 RBAC 并在同一个应用程序上完成所有操作,但我想区分所有内容,因此它在公司内部看起来像是两个不同的系统。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2015-05-08
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2011-10-11
    相关资源
    最近更新 更多