Ruby on rails 使用HttpParty向api发布哈希

Ruby on rails 使用HttpParty向api发布哈希,ruby-on-rails,json,api,post,request,Ruby On Rails,Json,Api,Post,Request,我正在尝试向api发送POST请求,并将哈希作为请求的参数。所讨论的api是freshdesk的api。我使用的是rails 4 他们要求我以以下形式发送请求: 代码 { "helpdesk_ticket":{ "description":"Some details on the issue ...", "subject":"Support needed..", "email":

我正在尝试向api发送POST请求,并将哈希作为请求的参数。所讨论的api是freshdesk的api。我使用的是rails 4

他们要求我以以下形式发送请求:

代码

       {
          "helpdesk_ticket":{
              "description":"Some details on the issue ...",
              "subject":"Support needed..",
              "email":"hulk@outerspace.com",
              "priority":1, "status":2
          },
          "cc_emails":"superman@marvel.com,avengers@marvel.com"
        }
样本卷曲度

旋度-uuser@yourcompany.com:test-H“内容类型:应用程序/json” -d'{“帮助台”票证:{“描述”:“有关问题的详细信息…”,“主题”:“需要支持…”,“电子邮件”: "hulk@outerspace.com“,“优先级”:1,“状态”:2},“抄送电子邮件”: "superman@marvel.com,avengers@marvel.com“}'-X柱

这就是我目前拥有的

控制器

def create
    email = params[:email]
    description = params[:description]
    subject = params[:subject]
    payload = [{"helpdesk_ticket" => { 'email' => email, 'description' => description, 'subject' => subject, 'priority' => 1, 'status' => 2}}].to_json
    trololol = Freshdesk.post('/helpdesk/tickets.json',
                            :body => payload
                            )
        debugger
        redirect_to "/support"
    end


class Freshdesk
    include HTTParty
    @apikey = "Somethingladida"
    format :json
    base_uri "http://genericname.freshdesk.com/"
    basic_auth @apikey, ""
end
查看

=form_tag support_index_path do
    =label_tag :email
    =text_field_tag :email,params[:email]
    =label_tag :description
    =text_field_tag :description
    =label_tag :subject
    =text_field_tag :subject
    =submit_tag "Submit", class:"button"
主要问题是:我收到一个500内部服务器错误,因此我假设我试图创建的请求不是freshdesk api要求的格式


干杯!:)

您可以通过执行以下操作准确镜像该结构:

def freshdesk_hash
  {
    "helpdesk_ticket":{
        "description":"Some details on the issue ...",
        "subject":"Support needed..",
        "email":"hulk@outerspace.com",
        "priority":1, "status":2
      },
    "cc_emails":"superman@marvel.com,avengers@marvel.com"
  }
end

但在我看来,你似乎正在将散列放入数组(
[{…
)。

对数组感到抱歉。那是我试图模拟对API的GET调用的响应。无论如何,我发现你的答案违反了规则,但是一旦“帮助台”的报价单,其余的钥匙都被取下了,解决方案非常有效,谢谢您的帮助^^