私はRails 3.2にデフォルトでJSONをレンダリングし、次のようにHTMLを完全にキックする必要があることを伝えようとします。
respond_to :json
def index
@clients = Client.all
respond_with @clients
end
この構文では、.json
をURLに追加する必要があります。どうすれば達成できますか?
routes.rb
ファイルを変更して、デフォルトの形式を指定できます
routes.rb
resources :clients, defaults: {format: :json}
これにより、clients_controller
全体のデフォルトの応答形式が変更されます
インデックスアクションでRESTfulに応答する必要がない場合は、xml応答を直接レンダリングするだけです。
def index
render json: Client.all
end
このパターンは、両方に同じコントローラーアクションを使用する場合に適しています。 :htmlをデフォルトの形式として使用して、通常どおりにWebバージョンを作成します。次に、APIをパスの下に配置し、そこでデフォルトとして:jsonを設定します。
Rails.application.routes.draw do
resources :products
scope "/api", defaults: {format: :json} do
resources :products
end
end