2017-03-21 22 views
1

私はAPI POSTリクエストをしようとしています。テストするとき私は、レールコンソールでこれを実行します。NoMethodError:未定義のメソッドの `スプリット」:『コンテンツタイプ』:シンボル

u = User.find(1234) 
u.create_or_update_hubspot 

が、このメッセージを取得し続ける:

NoMethodError: 『コンテンツタイプ』::のための未定義のメソッド `スプリット」シンボル

上の任意のアイデアをこれを修正する方法は?

def create_or_update_hubspot 

    require 'net/http' 
    require 'uri' 
    require 'json' 

    hubspot_api = 'b193b89b-0ff1-40c6-a428-b7327f3bc430' 

    uri = URI.parse("https://api.hubapi.com/contacts/v1/contact/createOrUpdate/email/[email protected]/?hapikey=#{hubspot_api}") 

    header = {'Content-Type': 'application/json'} 
    user = {"Properties":[ 
     { 
      "property": "First Name", 
      "value": "user.first_name" 
     }, 
     { 
      "property":"Last Name", 
      "value":"user.last_name" 
     }, 
     { 
      "property": "Email", 
      "value": "user.email" 
     }, 
     { 
      "property":"Mobile Phone Number", 
      "value":"user.phone_number" 
     }, 
     { 
      "property":"Microsite", 
      "value": "user.tags" 
     }, 
     { 
      "property":"Company Plan", 
      "value":"user.plan" 
     }, 
     { 
      "property":"Source?", 
      "value":"user.registration_source" 
     } 
     ] 
    } 

# Create the HTTP objects 
    http = Net::HTTP.new(uri.host, uri.port) 
    request = Net::HTTP::Post.new(uri.request_uri, header) 
    request.body = user.to_json 

# Send the request 
    response = http.request(request) 

    end 
+1

エラーメッセージの完全なトレースを追加してください。どの行にエラーがスローされますか? –

答えて

1

は単に{'Key': 'Value'}{'Key' => 'Value'}によって置き換えられるように、ロケットオペレータ(=>)ではなくコロン演算子(:)を使用します。ハッシュで:演算子を使用すると、そのキーは引用符にもかかわらずシンボルであり、シンボルにはメソッドが分割されていないため、エラーが発生します。

関連する問題