2012-06-04 17 views
7

Rails 3.2.5. Ho una serie di controller che costituiscono un'API JSON utilizzata dall'applicazione Backbone.js. Ora sto cercando di creare una serie di controller che serviranno contenuti statici per crawler/spider/googlebot. Vorrei ottenere gli stessi dati dall'API JSON poiché sono personalizzati per i modelli di manubri che uso già con la mia applicazione Backbone.js ma questa volta li renderò lato server.Come ottenere la risposta di un controller da un altro controller?

C'è un modo in cui posso prendere la risposta JSON dai miei controller API e accedervi da un altro controller?. So che posso usare curl ma poiché l'API JSON è già locale per me e all'interno della stessa applicazione Rails, c'è un modo più efficiente ed elegante?

+0

Non andrebbe nel controller dell'applicazione? – Tallboy

+0

Quale andrebbe in 'ApplicationController'? – axsuul

+0

@Tallboy anche se va al controller dell'applicazione, come consuma? – Nobita

risposta

2

No, non c'è. Se hai bisogno di qualcosa di simile, imposta il codice condiviso all'interno di un'altra classe (probabilmente stai cercando di creare un service) e poi usalo in entrambi i controller in modo da poter condividere facilmente il codice e generare il JSON dall'output per entrambi di loro.

Dato che si utilizza RABL per la generazione JSON, è necessario attivare the pieces you want to reuse into partials e quindi includerli in ciascuna delle viste specifiche, proprio come qualsiasi altra visualizzazione di rotaie.

+0

Sto usando RABL per generare il JSON, quindi c'è un RABL JSON visualizza per ogni azione del controller API. Fondamentalmente ci sono due livelli coinvolti con la mia API JSON. Come dovrei refactoring in questo scenario? – axsuul

+0

Ecco, risposta aggiornata. –

Problemi correlati