我设置了一个简单的新的rails应用程序与模型条目,属性标题和内容使用脚手架.
现在我试图使用curl来发布JSON数据(而不是使用浏览器).
以下内容似乎工作(即使用空数据成功发布):
curl --verbose --header "Accept: application/json" --header "Content-type: application/json" --request POST --data "" http://localhost:3000/entries
以下不行:
curl --verbose --header "Accept: application/json" --header "Content-type: application/json" --request POST --data "{'content':'I belong to AAA','title':'AAA'}" http://localhost:3000/entries
我尝试了很多变化.我得到的错误主要是在JSON数据中找不到或意外的令牌.
解决方法
为了跟Jonathan说的那样,Post现在将数据发送到EntriesController.现在在您的创建操作中,您必须从params哈希中获取数据.我会假设你正在做它的方式,所以你会做这样的事情:
curl -d 'entry[content]=I belong to AAA' -d entry[title]=AAA http://localhost:3000/entries'
在你的控制器
Entry.create(params[:entry])
这表示从params哈希(由rails为您创建)抓取“条目”数据,并将其作为参数传递给Entry以初始化新对象.在一个方法调用中,“创建”将为你做一个“新”和“保存”.