2012-01-14 18 views
0

私はapi urlへのクエリを作成し、URLがJSONとして返すparamsを保存します。 私はこのようにそれを入れてみましょう、私はこのようなURLがあります。今json応答をレールで処理する

をタンブリングだ人を見て、私はAPIが私のデータを私に戻っていますので、パラメータを送信したい=

http://version1.api.memegenerator.net/Instance_Create?username=userXXX&password=secret&languageCode=en&generatorID=45&imageID=20&text0=pushヒップスターダウン階段&テキスト1をJSON ....

私はこのようなフォームを作成しようとしています...

<%= form_for(@meme, :url => "memeapi", :remote => true) do |f| %> 
    <%= f.error_messages %> 
    <p> 
    <%= f.label :memeid %><br /> 
    <%= f.number_field :memeid %> 
    </p> 
    <p> 
    <%= f.label :imgid %><br /> 
    <%= f.number_field :imgid %> 
    </p> 
    <p> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </p> 
    <p> 
    <%= f.label :text0 %><br /> 
    <%= f.text_field :text0 %> 
    </p> 
    <p> 
    <%= f.label :text1 %><br /> 
    <%= f.text_field :text1 %> 
    </p> 

    <p> 
    <%= f.label :user %><br /> 
    <%= f.text_field :user %> 
    </p> 
    <p><%= f.submit %></p> 
<% end %> 

ように私は答えは要求を処理し、このコントローラにparamsは送信とすることであるかなり確信していますこのようなもの

def memeapi 
     @meme = Meme.new(params[:meme]) 
     @apiurl = "version1.api.memegenerator.net/Instance_Create?username=apigen&password=koalass&languageCode=en&generatorID=#{@meme.memeid}&imageID=#{@meme.imgid}&text0=#{@meme.text0}&text1=#{@meme.text1}" 
     redirect_to @apiurl 
     @meme.url = "#{@meme.name}-#{@meme.id}" 

    end 

これを実現する方法はわかりません。 ありがとうございます。

答えて

0

'ネット/ HTTP'

url = "http://version1.api.memegenerator.net/Instance_Create?username=apigen&password=koalass&languageCode=en&generatorID=#{@meme.memeid}&imageID=#{@meme.imgid}&text0=#{@meme.text0}&text1=#{@meme.text1}" 
resp = Net::HTTP.get_response(URI.parse(url)) 
data = resp.body 
# we convert the returned JSON data to native Ruby 
# data structure - a hash 
result = ActiveSupport::JSON.decode(data) 
+0

[OK]を必要とするが、どのように私はget_repsonseが働いている見ることができますか?私は結果変数をフォーマットすることはできません。どうすれば私を返せますか? –

+0

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/net/http/rdoc/Net/HTTPResponse.htmlこれはレスポンスオブジェクトで、ステータスとメッセージも処理できます – Fivell

関連する問題