6

Railsを使用してJSONでWebサービスクライアントにデータを返す簡単な方法はありますか?

4

5 に答える 5

11

Railsリソースは、モデルにRESTfulインターフェースを提供します。どれどれ。

モデル

class Contact < ActiveRecord::Base
  ...
end

ルート

map.resources :contacts

コントローラ

class ContactsController < ApplicationController
  ...
  def show
    @contact = Contact.find(params[:id]

    respond_to do |format|
      format.html 
      format.xml {render :xml => @contact}
      format.js  {render :json => @contact.json}
    end
  end
  ...
end

したがって、これにより、必要な応答のタイプを取得するための特別なメソッドを定義する必要なしに、APIインターフェースが提供されます。

例えば。

/contacts/1 # Responds with regular html page

/contacts/1.xml # Responds with xml output of Contact.find(1) and its attributes

/contacts/1.js # Responds with json output of Contact.find(1) and its attributes
于 2008-10-29T01:26:16.420 に答える
4

http://wiki.rubyonrails.org/rails/pages/HowtoGenerateJSON

于 2008-09-11T21:28:19.233 に答える
2

Rails は、#to_jsonメソッドを持つために必要なほとんどのものにモンキー パッチを適用します。

私の考えでは、ハッシュ、配列、および ActiveRecord オブジェクトに対してそれを行うことができます。これらは、必要なユース ケースの約 95% をカバーするはずです。独自のカスタム オブジェクトがある場合、独自のto_jsonメソッドを作成するのは簡単です。これにより、データをハッシュに詰め込み、json 化されたハッシュを返すことができます。

于 2008-09-11T22:00:14.600 に答える
1

これを行うプラグインがあります http://blog.labnotes.org/2007/12/11/json_request-handling-json-request-in-rails-20/

そして、私が理解していることから、この機能はすでに Rails に組み込まれています。しかし、そのブログ投稿を参照してください。コード例と説明があります。

于 2008-09-16T09:18:29.430 に答える
0

ActiveRecord は、JSON とやり取りするためのメソッドも提供します。AR オブジェクトから JSON を作成するには、object.to_json を呼び出すだけです。JSON から AR オブジェクトを作成するには、新しい AR オブジェクトを作成してから object.from_json.. を呼び出すことができるはずですが、私が理解している限りではうまくいきませんでした。

于 2008-12-09T17:11:38.513 に答える