我正在寻求一些一般性的见解并就此问题提出建议,而不是针对问题的具体解决方案。
我目前正在开发一个需要管理子域名的应用程序,例如:admin.mydomain.com
,此管理员子域将处理所有内容,例如管理用户和在面板内设置内容以及API调用Dropbox,什么不是。
通常,该面板将与网站公共端的现有模型和控制器交叉,并管理由管理员用户提交的内容。
说到我应该如何设计这个应用程序?
鉴于我的堆栈包含:
我不知道2个较小的应用程序是否适用,因为我不知道在同一台服务器上托管2个应用程序的最佳方法。然后有两个不同进程需要更大的内存需求,以及两个应用程序之间的路由问题。
相反,如果这是一个单一的应用程序,我需要设置一些时髦的路由,以确保编辑用户之类的东西只能在admin子域下登录管理员。
所有在线阅读的内容让我对如何“物理”设置一些事情有了一个合理的理解(尽管我仍然不确定该领域)但我仍然不确定如何构建这个,2个应用程序或1,子域的最佳路由等等。
任何见解都会很棒,我很擅长。
答案 0 :(得分:1)
如果我是你,我会选择单一应用,因为它有很多优点:
如果您关注我的想法,我会在路由中使用命名空间来分隔“用户”和“管理员”部分。并使用device
gem在管理员部分添加身份验证。
我有多个使用这种架构构建的应用程序,它工作得很棒! :)
答案 1 :(得分:0)
如果您决定使用两个应用程序,则可以在配置文件中明确设置admin.domain并将其指向一个应用程序,然后设置www。一个指向另一个域。
我是在我写的应用程序上做到的,但这与你的结构有点不同。 您是否可以根据铁路指南使用控制器命名空间?如果没有,那么Railscasts在子域名上有一些很好的信息。
http://railscasts.com/episodes/221-subdomains-in-rails-3 http://railscasts.com/episodes/123-subdomains-revised
答案 2 :(得分:0)
除非有理由不这样做,否则请选择最简单的解决方案:
一个应用程序,包括正常部分以及管理员资料。像这样,您也可以从管理面板访问您的模型(或其他应用程序逻辑),而无需在多个应用程序中找到共享它们的方法。 一开始构建和维护的速度更快。如果应用程序变得太大,您仍然可以在以后将其拆分。
至于如何:
在共享两者之间的模型(或其他业务逻辑对象)时要非常小心。这不仅会使结构变得“固定”,而且在您决定稍后拆分时也会导致问题。