43

Rails 3.2 に、デフォルトで JSON をレンダリングするように指示し、HTML を次のように完全にキックします。

respond_to :json    

def index
  @clients = Client.all
  respond_with @clients
end

この構文では.json、URL に追加する必要があります。どうすれば達成できますか?

4

4 に答える 4

83

ファイルを変更してroutes.rb、デフォルトの形式を指定できます

ルート.rb

resources :clients, defaults: {format: :json}

これにより、全体のデフォルトの応答形式が変更されますclients_controller

于 2012-05-21T09:01:12.250 に答える
13

このパターンは、両方に同じコントローラー アクションを使用する場合に適しています。:html をデフォルトの形式として使用して、通常どおり Web バージョンを作成します。次に、API をパスの下に置き、:json をデフォルトとして設定します。

Rails.application.routes.draw do

  resources :products

  scope "/api", defaults: {format: :json} do
    resources :products
  end

end
于 2017-01-22T19:54:35.013 に答える
10

index アクションで RESTful 応答が必要ない場合は、単純に xml 応答を直接レンダリングします。

def index
  render json: Client.all
end
于 2012-05-21T09:02:59.253 に答える