2012-02-01 2 views
-1

Я пытаюсь создать запрос HTTP POST с помощью полой формы на внешний веб-сайт, то здесь factual.comКак создать запрос на отправку HTTP с использованием полей формы в API внешних веб-сайтов с помощью Ruby on Rails?

Я создал метод в моем data_controller.rb, который походит

def posttofactual 

uri = URI.parse("http://api.factual.com/v2/tables/Nj0JN3/input?") 

# Full control 
http = Net::HTTP.new(uri.host, uri.port) 
request = Net::HTTP::Post.new(uri.request_uri) 
request.set_form_data({"name" => "datum.name", "address" => "datum.address", "locality" => "datum.locality", "region" => "datum.region", "postcode" => "datum.postcode","category" => "datum.category","website" => "datum.website","latitude" => "datum.latitude","longitude" => "datum.longitude","&APIKey=" => "myapikey" }) 

# Tweak headers, removing this will default to application/x-www-form-urlencoded 
request["Content-Type"] = "application/json" 

response = http.request(request) 

end 

у меня есть форма, как

<%= form_for(@datum) do |f| %> 
<% if @datum.errors.any? %> 
<div id="error_explanation"> 
<h2><%= pluralize(@datum.errors.count, "error") %> prohibited this datum from being saved:</h2> 
<ul> 
<% @datum.errors.full_messages.each do |msg| %> 
<li><%= msg %></li> 
<% end %> 
</ul> 
</div> 
<% end %> 
<div class="field"> 
<%= f.label :name %><br /> 
<%= f.text_field :name %> 
</div> 
<div class="field"> 
<%= f.label :address %><br /> 
<%= f.text_field :address %> 
</div> 
<div class="field"> 
<%= f.label :locality %><br /> 
<%= f.text_field :locality %> 
</div> 
<div class="field"> 
<%= f.label :region %><br /> 
<%= f.text_field :region %> 
</div> 
<div class="field"> 
<%= f.label :postcode %><br /> 
<%= f.number_field :postcode %> 
</div> 
<div class="field"> 
<%= f.label :category %><br /> 
<%= f.text_field :category %> 
</div> 
<div class="field"> 
<%= f.label :website %><br /> 
<%= f.text_field :website %> 
</div> 
<div class="field"> 
<%= f.label :latitude %><br /> 
<%= f.text_field :latitude %> 
</div> 
<div class="field"> 
<%= f.label :longitude %><br /> 
<%= f.text_field :longitude %> 
</div> 
<div class="actions"> 
<%= f.submit %> 
</div> 
<% end %>  

Я хочу назвать «posttofactual» метод на этой линии <% = f.submit%> на поле формы.

+0

Sergio Tulentsev, у меня было сомнение, для которого мне нужен был ответ, рассказывая, что мой фон ... Если вы считаете, что помогаете в этом вопросе, тогда это нормально, иначе я найду его сам. Спасибо – user1166925

ответ

0

Похоже, что ваша форма будет размещаться либо create, либо update метод контроллера. Там вы должны извлечь данные из params и позвонить по своему методу posttofactual.