通过RoR发回JSON,现在是什么?

时间:2011-03-21 15:16:47

标签: ruby-on-rails ruby json forms post

好的,我是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,请转到错误页面。

感谢。

1 个答案:

答案 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)如果是真实的动作渲染成功页面,否则它会渲染错误页面。