Ruby on rails 如何在ruby控制器中获取数据并将其发布回html
我想通过Ruby on rails 如何在ruby控制器中获取数据并将其发布回html,ruby-on-rails,ruby,json,http,curl,Ruby On Rails,Ruby,Json,Http,Curl,我想通过curl命令调用ruby控制器app_v1: curl--verbose--header“Accept:application/json”--header“Content-type:application/json”--request-POST--data'{“Content”:“meta-data”}http://localhost:7000/app_v1/view 路由文件具有: resources :app_v1 do collection do get :view
curl
命令调用ruby控制器app_v1
:
curl--verbose--header“Accept:application/json”--header“Content-type:application/json”--request-POST--data'{“Content”:“meta-data”}http://localhost:7000/app_v1/view
路由
文件具有:
resources :app_v1 do
collection do
get :view
end
end
但当我没有发送任何数据时,例如,
curl,我将面临声明路由错误的错误http://localhost:7000/app_v1/view
然后我要显示的数据被渲染了我认为是这样的,因为在第一种情况下,您确实发出了POST
请求,而您的routes文件只与GET
请求匹配。
不带--request POST
的简单curl命令默认情况下执行GET
请求
您必须更改路由
文件以匹配POST
请求
resources :app_v1 do
collection do
post :view
end
end
看来你对控制器的名称有问题,我想我不确定。但这个解决方案对我有效 1:创建控制器
app/controllers/app\u v1\u controller.rb
2:
class AppV1Controller < ApplicationController
def view
@users = User.all
end
end
curlhttp://localhost:3000/app_v1/view
返回
[{“id”:1,“名字”:“vinay”,“姓氏”:“gupta”,“电子邮件”:vgvinay2@gmail.com,“地址”:“班加曼” 技术paerkjkm“}]
curl--verbose--header“Accept:application/json”--header“Content type:application/json”--request GET--data'{“Content”:“metadata”}http://localhost:3000/app_v1/view
返回
json”--请求获取--数据“{”内容“:“元数据”}” *在DNS缓存中找不到主机名 *正在尝试127.0.0.1。。。 *已连接到本地主机(127.0.0.1)端口3000(#0) GET/app_v1/view HTTP/1.1 用户代理:curl/7.35.0 主机:localhost:3000 接受:application/json 内容类型:application/json 内容长度:23
- 完全发送上载:23个字节中的23个
- 服务器WEBrick/1.3.1(Ruby/2.1.1/2014-02-24)未被列入黑名单<服务器:WEBrick/1.3.1(Ruby/2.1.1/2014-02-24)<日期:2015年12月23日星期三 13:54:34 GMT<内容长度:116<连接:保持活动状态<
- 到主机localhost的连接#0保持不变[{“id”:1,“名字”:“vinay”,“姓氏”:“gupta”,“email”:”vgvinay2@gmail.com,“地址”:“班加曼” 技术paerkjkm“}]
希望这对您有所帮助!!!您希望如何收到JSON请求的HTML响应?@rack让我们知道我们的解决方案是否适合您。
resources :app_v1 do
collection do
get :view
end
end