2012-06-04 46 views
7

Rails 3.2.5. Tengo una serie de controladores que componen una API JSON que consume mi aplicación Backbone.js. Ahora estoy buscando crear una serie de controladores que servirán contenido estático a los rastreadores/arañas/googlebot. Me gustaría obtener los mismos datos de la API de JSON, ya que están diseñados para las plantillas de manillar que ya uso con mi aplicación Backbone.js, pero esta vez los renderizo en el lado del servidor.¿Cómo obtener la respuesta de un controlador desde otro controlador?

¿Hay alguna forma de que pueda tomar la respuesta JSON de mis controladores API y acceder a ellos desde otro controlador?. Sé que puedo usar curl pero dado que la API JSON ya es local para mí y dentro de la misma aplicación Rails, ¿hay una manera más eficiente y elegante?

+0

¿No iría en el controlador de la aplicación? – Tallboy

+0

¿Cuál iría en 'ApplicationController'? – axsuul

+0

@Tallboy, incluso si va al controlador de la aplicación, ¿cómo se consume? – Nobita

Respuesta

2

No, no lo hay. Si necesita algo como esto, factorice el código compartido dentro de otra clase (probablemente esté intentando construir un service) y luego use esto en ambos controladores para que pueda compartir el código fácilmente y luego generar el JSON desde el resultado para ambos de ellos.

Dado que está utilizando RABL para generación JSON, debe convertir the pieces you want to reuse into partials y luego incluirlos en cada una de las vistas específicas, como cualquier otra vista de rieles.

+0

Estoy usando RABL para generar el JSON, por lo que hay un RABL JSON ver para cada acción del controlador API. Básicamente hay dos capas involucradas con mi API JSON. ¿Cómo me refactorizaría en este escenario? – axsuul

+0

Ahí va, respuesta actualizada. –

Cuestiones relacionadas