Domanda

C'è un modo semplice per restituire i dati ai client del servizio web in JSON utilizzando Rotaie?

È stato utile?

Soluzione

Rails la risorsa fornisce un'interfaccia RESTful per il tuo modello.Staremo a vedere.

Modello

class Contact < ActiveRecord::Base
  ...
end

Percorsi

map.resources :contacts

Controller

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

Questo vi dà una interfacce API, senza la necessità di definire metodi speciali per ottenere il tipo di rispondere richiesto

Es.

/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

Altri suggerimenti

Guide di monkeypatches la maggior parte delle cose che ci si cura per avere un #to_json metodo.

Fuori della parte superiore della mia testa, si può fare per l'hash, matrici, e ActiveRecord oggetti, che dovrebbe coprire circa il 95% dei casi d'uso che si potrebbe desiderare.Se si dispone di oggetti personalizzati, è banale scrivere il proprio to_json metodo per loro, che si può semplicemente marmellata di dati in un hash e quindi restituire il jsonized hash.

C'è un plugin che fa proprio questo, http://blog.labnotes.org/2007/12/11/json_request-handling-json-request-in-rails-20/

E da quello che ho capito questa funzionalità è già in Rails.Ma vai a vedere il post del blog, ci sono esempi di codice e spiegazioni.

ActiveRecord inoltre fornisce i metodi per interagire con JSON.Per creare JSON di un AR oggetto di oggetto di chiamata.to_json.PER creare un AR oggetto di JSON si dovrebbe essere in grado di creare un nuovo AR oggetto e quindi oggetto di chiamata.from_json..per quanto ho capito, ma questo non ha funzionato per me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top