2013-07-19 54 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");