Rails整体架构最佳实践

时间:2013-04-18 00:25:42

标签: ruby-on-rails

我很想知道Stack Overflow上的Rails老手们对此有何看法。

基本上,作为一个Rails newb,以及在编程中没有“正式”背景的人,我面临的最大挑战之一就是适当的架构。我如何知道构建应用程序的正确 是什么?

我很想知道一些资源是什么。

我知道基本的 - 但其中很多都没有给我我想要的高级架构概述:

http://www.amazon.com/Agile-Development-Rails-Third-Edition/dp/1934356166/ref=cm_lmf_tit_7 http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177/ref=cm_lmf_tit_3 Railscasts

这是一个简单的例子:

假设我正在构建一个包含商家和购物者的Rails应用程序 - 每组用户都有自己的身份验证,不同的权限等。为这个或多个通过API进行通信构建单个应用程序是否合适?这个多应用程序抽象有任何额外的好处吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

这不是一个简单的问题。完整的答案在很大程度上取决于您的项目。

如果你是初学者,我建议你把它全部放在一个应用程序中,你有足够的"分离"明智地使用模型。很难想象应用程序间通信带来的复杂性有益的场景。

在您的示例中,您应该问自己,为商家和购物者或两个单独的模型使用单亲模型会更好。

在前一种情况下,您可以考虑STI:

  • 用户(主要类,定义为class User < ActiveRecord::Base
    • 商家(定义为class Merchant < User
    • 购物者(类似class Shopper < User

Google for STI了解更多详情。

然后在您的控制器/视图中,您可以快速检查权限,例如:

if user.class == Merchant
  do_something
else
  do_something_else
end

同样,这两个类可能使用不同的算法进行身份验证。您可能还包括&#34;标准&#34;在基本User类中进行身份验证,并在需要时将其专门化在子类中。

干杯,