@suffering 当将 web 代码和 api 代码分成两个项目,部署成两个服务后,AR 代码要么重写一遍,要么一个项目写好后,简单粗暴地 copy & paste 到另一个项目,要么做成一个 gem 啥的进行共享,使用 bundler 导入。。。视乎都不是好办法
嗯,我知道 AR 可以脱离 rails 使用,但怎么做到 DRY? @losingle @suffering
@leopku 用 sinatra 就得把 ActiveRecord 重写一遍简直不能忍受啊,有没有 best practice?
@hardywu 嗯,不行。查看代码发现 present 并不是直接返回一个 Hash, 而是做了一些副作用的事,把结果赋值给 @body。https://github.com/intridea/grape/blob/a0447887b46902c392973aac6e7623f6fd63fd5d/lib/grape/dsl/inside_route.rb#L169.
@yukihiro_matz rails 太重了,似乎不是为 web service 设计的,我也不想把 web 代码和接口代码交织在一起,接口可能需要 token 认证等等,web 代码可能不用。另外两者的错误处理也不同。
@hammer 1. grape-jbuilder 看起来有点糟糕。2. grape 与 web 分离,做成两个项目,ActiveRecord 怎么复用?
另外提供另一个思路作为参考: 使用 Entity#represent
@losingle 涨姿势了,原来 formatter 可以这么用。grape 作者也没告诉我啊。