0

我被赋予了一个相当大的遗留 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 真正吸引人的是它通过视图而不是像其他一些控制器那样在控制器中构造响应。

4

1 回答 1

0

好吧,最后我不能使用 RABL gem,或者其他任何一个。

ActiveSupport 的两个版本之间的差异导致应用程序在 I18n 方法中中断。

我不能 100% 确定这是否是适用于所有应用程序的内在差异,或者这是否是这个遗留应用程序特有的东西,因为原始开发人员在构建应用程序时做了一些非常非传统的事情,我怀疑,已经破解了几个地方的基础 Rails 代码。

但是,我最终使用 json 和 json_pure gems 生成了我需要的 JSON,它们非常简单地允许您从散列生成 JSON。它们工作得很好,不需要许多其他 gem 所需的许多依赖项。

这确实意味着您必须在控制器内部组装散列,这对我的思维方式不太理想,因为它应该只是另一个视图。

于 2012-09-30T08:10:44.417 回答