2012-02-01 19 views
-1

我尝试使用表单字段这里的外部网站创建一个HTTP POST请求是factual.com如何使用Ruby on Rails将表单字段创建到外部网站API的HTTP发布请求?

我已经创造了我的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

塞尔吉奥Tulentsev,我有一个疑问,我需要一个答案,告诉我什么是我的背景是...如果你考虑帮助这个问题,那么它的好,否则我会自己找到它..谢谢 – user1166925 2012-02-01 09:47:39

回答

0

看起来你的表格会发布到createupdate控制器的方法。在那里你应该从params提取数据,并打电话给你的posttofactual方法。