2012-06-04 4 views
7

Rails 3.2.5. У меня есть серия контроллеров, которые составляют API JSON, который потребляет приложение Backbone.js. Теперь я хочу создать серию контроллеров, которые будут обслуживать статический контент для сканеров/пауков/googlebot. Я хотел бы получить те же данные из JSON API, поскольку они адаптированы к шаблонам дескрипторов, которые я уже использую с моим приложением Backbone.js, но на этот раз визуализируют их на стороне сервера.Как получить ответ контроллера от другого контроллера?

Есть ли способ, с помощью которого я могу ответить на JSON-ответ от контроллеров API и получить доступ к ним с другого контроллера?. Я знаю, что могу использовать curl, но поскольку API JSON уже локален для меня и в рамках одного и того же приложения Rails, есть ли более эффективный и элегантный способ?

+0

Не могли бы вы пойти в контроллер приложения? – Tallboy

+0

Что будет в 'ApplicationController'? – axsuul

+0

@Tallboy, даже если он идет к контроллеру приложений, как он потребляет? – Nobita

ответ

2

Нет, нет. Если вам нужно что-то вроде этого, укажите общий код внутри другого класса (вероятно, вы пытаетесь построить service), а затем используйте это в обоих контроллерах, чтобы вы могли легко поделиться этим кодом, а затем сгенерировать JSON из вывода для обоих из них.

Учитывая, что вы используете RABL для генерации JSON, вы должны повернуть the pieces you want to reuse into partials, а затем включить их в каждый из определенных видов, как и любой другой вид рельсов.

+0

Я использую RABL для генерации JSON, поэтому есть RABL JSON для каждого действия контроллера API. В основном есть два уровня, связанные с моим JSON API. Как бы мне реорганизовать этот сценарий? – axsuul

+0

Там вы идете, обновленный ответ. –

Смежные вопросы