我是rails环境的新手,来自java企业web应用程序背景我想创建几个类,使您能够轻松地与公开restful web服务的外部应用程序进行交互在java中,我只需将它们创建为无状态javabean/facade,它返回数据传输对象,这些对象是很好的可用对象,而不是难看的xml映射/数据在Rails/Ruby中,最好的方法是什么以下是我的主要问题:
facade类应该是静态的还是应该在使用服务之前实例化它们?
DTO应该放在哪里?
谢谢,
皮埃尔
更新:我们最终使用了本答案中解释的服务:Moving transactional operations away from the controller

最佳答案

不适合作为模型或控制器的代码位于lib文件夹中。helpers通常只用于生成html或其他ui相关结果的视图相关代码。
我通常会将它们创建为常规类,这些类是实例化的,并且具有访问外部rest服务的实例方法——这可以使测试它们更容易但这实际上只是一个偏好问题(还取决于每个请求需要多少状态/重用这些对象——取决于您具体在做什么)。
在本例中,“dto”只是普通的Ruby类——如果实例中没有任何逻辑的话,甚至可能是简单的Struct实例如果它们是Ruby类,那么它们会存在于app/models中,但它们不会扩展ActiveRecord::Base(或其他任何东西)

10-07 13:57