好的,我是Ruby on Rails的新手。我创建了一个表单,该表单发布到返回JSON的外部窗口小部件。所以我有这样的形式:
<%= form_for :email, :url => 'http://XXX.XX.XXX.212/widgetapi.0.1.php', :html => {:class => "new_email"} do |f| %>
<%= f.text_field :email, :value => "Your email address...", :class => "text", :id => "email", :name => 'email',
:onFocus => "change(this,'#222222'); this.value=''; this.onfocus=null;",
:size => "26" %>
<%= f.hidden_field :apiKey, :id => "apiKey", :name => 'apiKey', :value => "ABC123" %>
<%= f.hidden_field :lrDomain, :id => "lrDomain", :name => 'lrDomain', :value => "signup.triplingo.com" %>
<%= f.hidden_field :urlPrefix, :id => "refCodeUrl", :name => 'refCodeUrl', :value => "http://signup.website.com/" %>
<%= f.hidden_field :ref_code, :id => 'ref_code', :name => 'ref_code', :value => @referralid %>
<%= submit_tag "Enter To Win", :class => "button-positive submit" %>
<% end %>
哪个有效。现在我收到一个JSON响应:
({"email":"testing@testing2.com","reflink":"fi1ts","newuser":true})
现在好了,结果是浏览器位于带有JSON的响应页面上。
我猜我需要在控制器中对@response做些什么,但我不确定是什么。我想做的就是如果“newuser”是真的,为他们提供一个成功的页面。如果为false,请转到错误页面。
感谢。
答案 0 :(得分:1)
您应该更改该表单,以便它将向您的控制器发送请求。在该控制器中,您应该使用表单中的参数进行API调用(例如使用Curb:https://github.com/taf2/curb或Net / http:http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/index.html)。然后,您可以使用JSON解析结果并显示用户正确的页面。
所以:
1)用户向您的申请发送请求
2)您的应用程序使用来自用户
的数据向http://XXX.XX.XXX.212/widgetapi.0.1.php发出请求3)您的应用程序收到JSON,并检查newuser是否为true。
4)如果是真实的动作渲染成功页面,否则它会渲染错误页面。