2013-07-19 55 views
0

我已经用devise和脚手架编写了一个小型RoR项目。 当通过我的桌面注册新用户时,我从我的android应用程序(使用JSON)注册新用户时得到不同的结果。Ruby on Rails通过Android应用程序对POST进行响应

这里是从桌面源的一部分:

<body> 
<p class="notice">Welcome! You have signed up successfully.</p> 
<p class="alert"></p> 
. 
. 

这里是我得到了我的Android应用程序的响应:

<body> 
    <p class="notice"></p> 
    <p class="alert"></p> 
    . 
    . 

为什么我没有拿到通知书?我知道该应用程序正在工作,用户已创建。

编辑:也许有一种方法来配置Devise如何响应时通过JSON注册?我不需要HTML ..所有我需要的是一个确认..

EDIT2:所以现在我加入httppost.setHeader("Accept", "application/json"); 创建用户,但现在我的反应完全是空的。我需要弄清楚如何使设计创建一个JSON(自定义?)响应..

+0

把你的控制器和视图代码。 –

+0

没有什么可说的。我几乎没有触及代码。它全部通过脚手架自动创建。 – Igor

回答

0

显然,所有我需要的是补充一点:

respond_to :html, :json 

gems/[Devise folder]/app/controllers/devise/registration_controller

所以它会更简单只需将此行添加到devise_controller,那么我们将在所有控制器中都有JSON响应。

# All Devise controllers are inherited from here. 
class DeviseController < Devise.parent_controller.constantize 
    include Devise::Controllers::ScopedViews 
    respond_to :html, :json 
. 
. 
. 

在Android应用中,我们需要记住:

httppost.setHeader("content-type", "application/json; charset= utf-8"); 
httppost.setHeader("Accept", "application/json");