我被赋予了相当大的传统Rails 2.3.2应用程序的责任,我被要求为这个以JSON输出数据的应用程序添加一个相当复杂的RESTful API。
在做了我的研究之后,我得出的结论是,考虑到API调用的性质,使用RABL gem可能是最好的计划。但是,我发现RABL的依赖关系需要ActiveSupport 2.3.14。
现在,我认为我不能同时在同一个应用程序中运行ActiveSupport 2.3.2和ActiveSupport 2.3.14,如果我理解正确,如果我升级ActiveSupport,那么我将需要升级其余的由于依赖性要求,Rails包也是如此。
有人能告诉我Rails 2.3.2和Rails 2.3.14之间的区别,或者我可能会在哪里找到这些信息,以便我对是否可能破坏某些现有功能有所了解?
或者,如果两个版本的Rails之间存在一些严重的差异,是否有人可以推荐RABL的替代方案?我看了很多其他的东西,比如Jsonify,JBuilder,Tequila等,但是RABL真的很有吸引力,因为它通过视图构建响应,而不是像其他一些控制器那样在控制器中构建响应。
答案 0 :(得分:0)
好吧,最后我无法使用RABL宝石或任何其他宝石。
两个版本的ActiveSupport之间的差异导致应用程序在I18n方法中中断。
我不是百分之百确定这是否适用于所有应用程序的内置差异,或者这是否是这个遗留应用程序特有的东西,因为原始开发人员在构建应用程序时做了一些非常规的事情,我怀疑,已经在几个地方破解了基础Rails代码。
但是,我最终使用json和json_pure gems生成了我需要的JSON,这非常简单地允许您从哈希生成JSON。它们工作得很好,并且不需要很多其他宝石所需的依赖项。
这确实意味着你必须在控制器中组装一个不太理想的哈希,因为它应该只是另一种观点。