Ruby on rails XML代替JSON,使用Grape、Rails 3和Heroku

Ruby on rails XML代替JSON,使用Grape、Rails 3和Heroku,ruby-on-rails,xml,json,heroku,grape-api,Ruby On Rails,Xml,Json,Heroku,Grape Api,我在用葡萄(https://github.com/intridea/grape)对于Rails 3,我遇到了一个奇怪的问题 我在API类中将json定义为默认输出格式,并使用as_json方法输出结果 在my/lib/MyAPI.rb中: class MyAPI < Grape::API prefix 'api' version 'v1', :using => :path, :format => :json, :default_format => :json

我在用葡萄(https://github.com/intridea/grape)对于Rails 3,我遇到了一个奇怪的问题

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

在my/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
class MyAPI:path,格式=>:json,默认格式=>:json
资源“用户”怎么办
动手
错误!(“401无效令牌”,401),除非当前用户
users=User.where('id!=?',current_User.id)-current_User.friends
users.as_json()
结束
结束
结束
在开发模式中,json被正确地呈现,但是在heroku上,xml被呈现而不是json

有人知道为什么吗


提前非常感谢。

根据自述文件和代码。在Grape 0.2.0版本中,
default_格式
不是版本类方法的选项。您需要通过您的班级进行修复:

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
class MyAPI:路径
格式:json
默认格式:json
资源“用户”怎么办
动手
错误!(“401无效令牌”,401),除非当前用户
users=User.where('id!=?',current_User.id)-current_User.friends
users.as_json()
结束
结束
结束

如果您在本地服务器的生产模式下运行应用程序,您是否也遇到同样的问题?在我的本地服务器的生产模式下,它正常工作。问题似乎来自于heroku。谢谢你的帮助。当你调用API时,你能粘贴你的heroku实例的日志吗?没有太多信息
2012-04-05T09:07:32+00:00 heroku[路由器]:GET******.com/api/v1/me dyno=web.1 queue=O wait=0ms service=118ms status=200 bytes=813
您可以像env一样在您的操作中添加一些输出吗?我刚刚尝试了您的建议,但出现了以下错误:
/Users/mathieuripert/woudu/lib/MyAPI.rb:4:in
格式:无法将符号转换为字符串(TypeError)`您使用的是哪个版本的grape?