我想通过app_v1
命令调用ruby控制器curl
:
curl --verbose --header "Accept: application/json" --header "Content-type: application/json" --request POST --data '{"content":"meta data"}' http://localhost:7000/app_v1/view
routes
文件有:
resources :app_v1 do
collection do
get :view
end
end
但我面临错误说明路由错误,但是当我没有发送任何数据,即curl http://localhost:7000/app_v1/view
时,我想要显示的数据已经呈现
答案 0 :(得分:0)
我认为是因为您在第一种情况下执行POST
请求,而您的路由文件仅匹配GET
请求。
没有--request POST
的简单curl命令默认执行GET
请求。
您必须更改routes
文件以匹配POST
请求
resources :app_v1 do
collection do
post :view
end
end
答案 1 :(得分:0)
看来你的控制器名称有问题我猜不是的。但这个解决方案对我有用
1:创建控制器app/controllers/app_v1_controller.rb
2:
class AppV1Controller < ApplicationController
def view
@users = User.all
end
end
3:
resources :app_v1 do
collection do
get :view
end
end
curl http://localhost:3000/app_v1/view
[{ “ID”:1, “如first_name”: “维奈”, “姓氏”: “古普塔”, “电子邮件”: “vgvinay2@gmail.com”, “地址”:“bangamane tech paerkjkm“}]
<强> curl --verbose --header "Accept: application/json" --header "Content-type: application/json" --request GET --data '{"content":"meta data"}' http://localhost:3000/app_v1/view
强>
json“--request GET --data'{”content“:”meta data“}' http://localhost:3000/app_v1/view *在DNS缓存中找不到主机名 *尝试127.0.0.1 ... *连接到localhost(127.0.0.1)端口3000(#0)
GET / app_v1 / view HTTP / 1.1 User-Agent:curl / 7.35.0 主持人:localhost:3000 接受:application / json 内容类型:application / json 内容长度:23
- 上传已完全发送:23个字节中的23个&lt; HTTP / 1.1 200 OK&lt; X-Frame-Options:SAMEORIGIN&lt; X-Xss-Protection:1; mode = block&lt; X-Content-Type-Options:nosniff&lt; Content-Type:application / json; charset = utf-8&lt; Etag:W /“01885a844e824dae54d6e0556099efe8”&lt; Cache-Control:max-age = 0,private,must-revalidate&lt; X-请求ID: 82e9634c-e2ef-489d-bc43-b2f4e8aacf4c&lt; X-Runtime:0.007763
- 服务器WEBrick / 1.3.1(Ruby / 2.1.1 / 2014-02-24)未列入黑名单&lt;服务器:WEBrick / 1.3.1(Ruby / 2.1.1 / 2014-02-24)&lt;日期:2015年12月23日星期三 13:54:34 GMT&lt;内容长度:116&lt;连接:Keep-Alive&lt;
- 连接#0以托管localhost左完整[{“id”:1,“first_name”:“vinay”,“last_name”:“gupta”,“email”:“vgvinay2@gmail.com”,“address” :“bangamane tech paerkjkm“}]
希望这有助于你!!!