如何在ruby控制器中获取数据并将其发布回html

时间:2015-12-23 09:59:45

标签: ruby-on-rails ruby json http curl

我想通过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时,我想要显示的数据已经呈现

2 个答案:

答案 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“}]
  •     
  

希望这有助于你!!!