【发布时间】:2011-06-01 22:31:03
【问题描述】:
基本上,我正在编写一个与许多流行网站(Facebook、Twitter、Youtube 等)交互的网站。我的主要目标是相同的,但是对于我支持的每个网站,我实现目标的方式会有所不同,因为它们的布局不同,而且我必须根据他们网站的运作情况编写我的请求。
用户选择他们想要使用我提供的服务的特定网站(即他们想要将其用于 facebook 还是 twitter 等)。而且他们只能根据我的服务请求选择其中一个网站。
我想知道在 Rails 模块化方面有什么好的设计原则/实践(这是我的第一个 Rails 项目,不过我接触过很多其他语言)。基本上,我看到的方式是,用户将他们的请求提交给我的控制器,它将检查他们选择的站点。然后我的控制器将“加载”一个特定的模块(即,如果他们选择了 facebook,它将加载 facebook 模块),其中将包含用于处理 Facebook 请求的所有代码。然后它将以任何必要的方式调用此代码,并将结果提供给用户。
所以基本上,我的问题实际上归结为关于 Rails 的最佳实践和设计原则。在这种情况下,您认为分离我的代码的好方法是什么?我应该为我支持的每个网站(facebook、twitter 等)开设一个课程吗?这是我能想到的唯一真正的选择(因为我对 Rails 不是很熟悉),但是我相信会有更好的选择,所以我可以限制代码冗余的数量,作为每个类的目标将是相同的,只是获得目标的技术不同(即每个类的方法名称都相同,等等)。
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3