我正在尝试模拟我的简单Rails脚手架Web服务的POST。脚手架创建的文件尚未更改。当我从网站表单发布数据时,会正确创建记录。
当我尝试使用curl进行POST时,会在数据库中创建一条记录,但除了'updated_at'和'created_at'之外,它在字段中都有NULL值。我是命令行卷曲的新手,所以我可能没有正确地做到这一点。
curl -d "name=Gazoo&friend=Rubble" localhost:3000/flintstones
我从WEBrick那里得到了回复:
在4月28日星期四18:04:47 -0600开始POST“/ flintstones”为127.0.0.1 2011由FlintstonesController处理#create as Parameters:{“name”=>“Gazoo”,“friend”=> “Rubble”} AREL(0.3ms)INSERT INTO“flintstones”(“name”,“friend”,“created_at”,“updated_at”)VALUES(NULL,NULL,'2011-04-29 00:04:47.779902', '2011-04-29 00:04:47.779902')重定向到http://localhost:3000/flintstones/4
获得json的GET后
curl localhost:3000 / flintstones.json
我收到:
[{ “打火石:{” 名称 “:NULL,” created_at “:” 2011-04-29T00:09:58Z”, “的updated_at”: “2011-04-29T00:09:58Z”, “ID” :4, “朋友”:空}}]
为什么我的字段中会出现空值?
提前致谢。
答案 0 :(得分:22)
我已经google了一下,使用curl和rails web服务的每个例子都显示了以格式传递的参数
object[paramName]=paramValue
以及为每个参数设置一个-d
,这将使您的CURL语句看起来像
curl -d "flintstone[name]=Gazoo" -d "flintstone[friend]=Rubble" localhost:3000/flintstones
以下是我引用的来源:
答案 1 :(得分:3)
Rails(默认情况下)不会以提供的方式查找帖子正文,“name=Gazoo&friend=Rubble
”。它寻找这个方案 - 假设你的模型是Flintstones,你的字段是名字和朋友 - “Flintstone[name]=Gazoo&Flintstone[friend]=Rubble
”。这是铁路的DSL,用于表格帖子的帖子。