我使用 Rails 创建了一个 REST 服务器,用于管理用户和相关的评论。
这是路由配置。
resources :users do
resources :comments
end
在控制器中,我只需要查询和创建Comments的操作。交换格式为 JSON。
class CommentsController < ApplicationController
def index
@user = User.find(params[:user_id])
@comments = @user.comments
respond_to do |format|
format.html # index.html.erb
format.json { render json: @comments }
end
end
def create
@user = User.find(params[:user_id])
@comment = @user.comments.create!(params[:comment])
redirect_to @user
end
end
我想存储远程客户端创建的评论。它是一个安卓应用程序。为了测试服务器,我正在尝试以下curl命令,如此处所建议的。
curl -X POST -d @comment1.json http://localhost:3000/users/42/comments
curl -X POST -d @comment1.json http://localhost:3000/users/42/comments.json
curl -X POST -d @comment2.json http://localhost:3000/users/42/comments
curl -X POST -d @comment2.json http://localhost:3000/users/42/comments.json
我也不确定 JSON 文件的外观。以下是我尝试过的变体:
comment1.json
{
content:
{
message: "Let's see if this works.",
subject: "JSON via curl"
}
}
...或comment2.json
{
message: "Let's see if this works.",
subject: "JSON via curl"
}
当我检查特定用户的评论时,我可以看到它已经创建,但是,我传递的参数和,在某个地方丢失了!subject
message
[
{
created_at: "2012-08-11T20:00:00Z",
id: 6,
message: "null",
subject: "null",
updated_at: "2012-08-11T20:00:00Z",
user_id: 42
}
]
Rails 安装包括以下 gem。
...
Using multi_json (1.3.6)
Using json (1.7.4)
...
问题:
- 如何通过curl或任何其他合适的工具测试评论的创建?