RESTful方式合并资源

时间:2012-01-16 10:30:23

标签: ruby-on-rails rest

给出两个资源

  • http://example.com/places/1
  • http://example.com/places/2

端点应该如何将两个资源合并到一个资源中?理想情况下,合并后只剩下1个资源。

乍一看,我可以使用PUT http://example.com/places/1params[:src_id] = 2。这会将第二个资源的属性合并到第一个资源中并删除第二个资源。还有其他人有更好的方法吗?

请注意,我使用的Rails不支持http MERGE动词,所以不可能。

1 个答案:

答案 0 :(得分:2)

我建议使用new和create操作的新控制器PlacesMergeController。在新操作中,您将有一个表单询问要合并的位置。表单将对create操作执行POST请求,您可以在其中执行实际合并。根据逻辑的复杂程度,您还可以使用PlacesMerge模型(非AR!)。

这种方法应该在处理合并操作的源/目标方面给您最大的灵活性 - 并且它易于维护。