基本上,我正在编写一个与许多热门网站(Facebook,Twitter,Youtube等)接口的网站。我的主要目标是相同的,但是我实现我的目标的方式与我支持的每个站点都不同,因为它们的布局不同,并且我必须根据其网站的运行情况编写我的请求。如何模块化Rails代码?
用户选择他们想要使用我提供的服务的特定网站(即,他们是否希望将其用于Facebook或Twitter等)。他们只能根据我的服务请求选择这些网站中的一个。
我想知道当Rails模块化(这是我的第一个Rails项目,尽管我已经接触过其他语言),好的设计主体/实践是什么。基本上,我看到它的方式是,用户将他们的请求提交给我的控制器,它将检查他们选择的站点。然后,我的控制器将“加载”一个特定的模块(即如果他们选择了Facebook,它将加载facebook模块),其中将包含处理Facebook请求的所有代码。然后它将以任何必要的方式调用该代码,并将结果提供给用户。
所以基本上,我的问题是真正归结为有关Rails的最佳实践和设计原则。您认为在这种情况下分离我的代码的好方法是什么?我是否应该为每个支持的网站开设一个班级(脸书,推特等)?这是我能想到的唯一真正的选择(因为我对Rails不是很熟悉),但是我确信会有更好的选择,所以我可以限制代码冗余的数量,因为每个类的目标将是相同的,它只是一个不同的技术来获得目标(即方法名称将是相同的每个类,等)。
谢谢!
谢谢steenslag,这听起来很完美:)!如果有人知道这种事情会在轨道中出现,我就全部定下来。我唯一的猜测是在/ lib目录中,但我可能是错的。 – b0xxed1n 2011-06-01 14:35:45