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