0

我有一个移动应用程序可以访问运行 Rails 3.x 应用程序的服务器。数据以 JSON 格式交换。

我有一个相当复杂的问题,我将在这里尝试简化。

在一种情况下,移动应用程序向数据库发布一条新的销售记录,其中包括对现有订单记录的更新。为了通过单个 HTTP 请求实现这一点,它通过嵌套属性将订单记录属性更新作为新销售记录的一部分传递。

销售的 Rails 模型包括以下内容:

attr_accessible :product_id, :order_id, :order_attributes
accepts_nested_attributes_for :order, :update_only => true

Rails 路由是标准的。

由于发布销售的 http 请求将创建一个新记录(即它不包括现有的 sale_id),所以我使用 HTTP POST。

我可以发布一个新的销售记录(没有订单记录更新)就好了。

但是,当我包含嵌套属性来更新订单记录时,我得到 404 'not found'。

怀疑这是因为现有订单的嵌套更新包含一个“id”,因此实际上应该是一个 PUT(正确路由)。

为了帮助诊断问题,我尝试将现有的工作非嵌套销售POST (不包含 id)更改为 PUT 请求,在这种情况下,它确实破坏了功能,我得到了 404 . 这表明服务器确实会将 PUT/POST 混淆报告为 404。

需要明确的是,我可以在其他情况下使用相同的代码使用嵌套属性成功发布更新,所以我相信问题不是实际的属性编码。

我很感激关于这是否是问题的想法,如果是这样,我能做些什么。

谢谢你。

4

0 回答 0