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ではjsonの代わりにxmlがレンダリングされます。

誰かが理由を知っていますか?

よろしくお願いします。

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 に答える