【问题标题】:Ruby on Rails response to POST via Android appRuby on Rails 通过 Android 应用程序响应 POST
【发布时间】:2013-07-19 18:01:20
【问题描述】:

我编写了一个带有设计和脚手架的小型 RoR 项目。 通过我的桌面注册新用户时,我得到的结果与从我的 android 应用程序(使用 JSON)注册新用户时不同。

这是来自桌面的部分源代码:

<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>
    .
    .

为什么我没有收到通知?我知道应用程序正在运行并且用户已经创建。

编辑:也许有一种方法可以配置设计在通过 JSON 注册时如何响应?我不需要 html.. 我只需要确认..

Edit2:所以现在我添加了httppost.setHeader("Accept", "application/json"); 用户已创建,但我的回复现在完全是空的。我需要弄清楚如何让 Devise 创建一个 JSON(自定义?)响应..

【问题讨论】:

  • 放上你的控制器并查看代码。
  • 没什么可放的。我几乎没有碰过代码。这一切都是通过脚手架自动创建的。

标签: android ruby-on-rails json post


【解决方案1】:

显然,我只需要添加以下内容:

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");

【讨论】:

    猜你喜欢
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 2012-09-11
    相关资源
    最近更新 更多