【发布时间】:2014-11-07 22:27:32
【问题描述】:
我有一个通过 HTTP 消息与 Rails 4 服务器通信的 Android 应用程序。
我的服务器的数据库有一个表 room_entries 有 3 个字段
- 名称:字符串
- mac地址:字符串
- 信号:int
现在我想将数据 (JSON) 从 Android 应用发送到服务器,但在大多数情况下,我想一次发送多个 room_entry。
我正在使用 curl 测试服务器的 REST API,当我尝试使用 一个 room_entry 发送 POST HTTP 消息时,它是可以的,如下所示:
curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"room_entry": {"name": "room1", "macaddress": "someaddress", "signal": 10}}' http://localhost:3000/room_entries
问题是,当我想一次发送多个 room_entry 时,使用数组,它会在数据库中添加一个空对象(所有字段均为 NULL)。
curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"room_entry": [{"name": "room1", "macaddress": "someaddress1", "signal": 10}, {"name": "room2", "macaddress": "someaddress2", "signal": 40}]}' http://localhost:3000/room_entries
阅读其他问题和答案后,我认为这是我的控制器中的 permit 问题。关于如何传递特定属性的数组的例子很多,但没有关于如何发送对象本身的数组,所以我有点迷茫。
【问题讨论】:
-
我们需要控制器的代码来帮助这里:/
-
@iMacTia 控制器的代码是通用的,用脚手架创建的。
-
那么问题就在于通用的脚手架控制器不能通过一次调用来管理多个创建。你真的需要这个功能(我可以告诉你如何创建一个方法来做到这一点)或者你我们只是想知道为什么它不起作用?请记住,通常一次创建一项。
-
我需要这样做。我知道它不起作用,因为我的控制器是通用的,但我不知道该怎么做。
标签: android ruby-on-rails json curl