1

我在 Rails 3 中使用 Grape (https://github.com/intridea/grape),我遇到了一个奇怪的问题。

我在我的 API 类中将 json 定义为默认输出格式,并且我使用 as_json 方法来输出我的结果。

在我的 /lib/MyAPI.rb 中:

class MyAPI < Grape::API
  prefix 'api'
  version 'v1', :using => :path, :format => :json, :default_format => :json

  resource "users" do
    get do
      error!("401 invalid token", 401) unless current_user
  users = User.where('id != ?' , current_user.id) - current_user.friends
       users.as_json()
    end
  end 
end

在开发模式下,json 被正确渲染,但是在 heroku 上,xml 被渲染而不是 json。

有人知道为什么吗?

提前非常感谢。

4

1 回答 1

3

在根据 README 和代码。在 Grape 0.2.0 版本中,default_format没有版本类方法的选项。您需要由您的班级修复它:

class MyAPI < Grape::API
  prefix 'api'
  version 'v1', :using => :path
  format :json
  default_format :json

  resource "users" do
    get do
      error!("401 invalid token", 401) unless current_user
  users = User.where('id != ?' , current_user.id) - current_user.friends
       users.as_json()
    end
  end 
end
于 2012-04-05T10:12:17.917 回答