2016-06-09 144 views
1

在Ruby on Rails上實現Rest API。所以我想以json格式迴應所有請求。我做到這一點:以json格式響應所有格式請求

include ActionController::MimeResponds 


before_filter :force_json 

def force_json 
    response.format = "json" 
    #also tried 
    # response.content_type = Mime[:json] 
end 

這兩種方式沒有奏效。它給了我一個錯誤的HTML頁面。 也有一種方法來實現整個api而不是每個類的? 謝謝!

+0

結帳在http://stackoverflow.com/questions/23946630/rails-4-how-to-render-json-regardless-of-requested-format –

+0

指定的應答雖然你肯定能* *以json格式響應所有請求,你應該*做的是阻止任何不請求JSON格式的請求。這個答案:http://stackoverflow.com/a/3679735/476712說明如何做到這一點。 – lorefnon

回答

0

如果您希望它發生在應用程序範圍內,您可以在應用程序控制器中執行類似操作。

class ApplicationController < ActionController::Base 
    before_action :force_json 

    def force_json 
    request.format = :json 
    end 
end 
0

如果使用responders寶石,你可以在你的類的頂部定義此:

class PostsController < ApplicationController 
    respond_to :json 
    ... 

然後該控制器將使用JSON默認響應。

+0

即使使用這個寶石,並添加該代碼,如果我請求Content-Type文本/ HTML我得到一個HTML網站。我想得到一個錯誤的JSON –