2011-07-11 29 views
2

これはかなり簡単な質問です。私は自分の知識のギャップを埋めようとしています。投稿でRailsでJSONオブジェクトを送信

簡単に言えば、以下のようにアプリケーションが動作: 1:I:Webアプリケーションが値 1のハッシュを作成する:II:JSON 1に、このハッシュをオン:III:POST THISを介して他のアプリケーションにまたがっJSONを送信メイン質問です

2:i:他のWebアプリケーションがJSONを受け取り、デシリアライズしてオブジェクトに戻ります。

@hostURL = 'http://127.0.0.1:20000/sendJson' 

1については、私はiとiiを持っています。それほど難しくない。私はポストを通じて全体でJSONハッシュを送信する方法へと途方に暮れてよしかし

res = Net::HTTP.post_form(URI.parse(@hostURL), 
    {'myString'=>'testestestest, 'myInteger' => 20}) 

:私のアプリケーションでPOSTリクエストを送信

@myHash = HASH.new 
    @myHash = 
    { 
     "myString" => 'testestestes' 
     "myInteger" => 20 
    } 

    @myJsonHash = @myHas.to_json 

は次のようになります。 2については

:私はRailsが自動的にリクエストを受けてデシリアライズを聞くよう

@request = UserRequest.new({:myString => params[:myString], :myInteger => params[:myInteger] }) 
      if @request.save 
    #ok 
     puts "OBJECT CREATED AND SAVED" 
    else 
    #error 
     puts "SOMETHING WENT WRONG WITH OBJECT CREATION" 

これで十分でしょう。


注:応答は何ですか。

これは2つのWebアプリケーションであり、いくつかのHTMLを返信すると悪いことになります。おそらく数値応答ですか? 200? 404?それがデータで応答ではなく、あなたがto_jsonの反対をしているfrom_jsonを使用したいブラウザ

答えて

2

への応答に来るとき

は、任意の業界標準があります。これは、JSONで送信されるオブジェクトを取り込み、モデルをルビに変換するので、モデルは保存されますが、保存すると分かります。

JavaScriptまたはAS3から通常行われるコントローラにJSON(サーバー側)を送信する点では、

投稿方法を説明する必要があります。フォームから、リンクから。それは重要です。しかし、最も簡単な方法はjQueryを使うことです。

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: data, 
    success: success, 
    dataType: json 
}); 

ここでは、urlポストのURLなどはapp.com/posts(ドメイン、およびコントローラ)があり、その後、データは、例えば、JSON形式でなければなりませんようにしたい:

data = { 
     "name" => 'Hello' 
     } 
+0

JSONは通常JavaScriptから送信されます。たとえば、コードを参照してください。 – s84

+0

あなたが上記のコードを取得したと思います。しかし、あなたはルビーやレールを使って送信してはいけない、または送信できないと言っていますか?投稿方法を定義しないと申し訳ありません。正直言って本当にわかりません。現時点ではフォームはありません。私の考えでは、jsonをハードコードして他のアプリケーションに送ることができるほど簡単でした。私はフォームがHTMLの休憩ポストに必要であることを読んだが、今まで私はNET:HTTPコードとそれをうまく使っていた。受け取り側のWebアプリケーションは、2章のようにこれを受け入れることに問題はありません。 – OVERTONE

関連する問題