Можно ли вызвать контроллер Rails 3 в промежуточном программном обеспечении Rack? - PullRequest
1 голос
/ 05 сентября 2011

Я хочу использовать ExtDirect для стороннего пользовательского интерфейса extjs в Rails 3. Поэтому я начал обновлять гем active-direct для работы с Rails 3. Вот обновленная версия: https://github.com/stonegao/active-direct

На данный момент мой модифицированный активный прямой плагин / гем работает с моделями. Я могу сделать это в JavaScript:

App.namespace.Project.all({params},callback_function);

Отлично.

Теперь я хочу использовать некоторые специальные контроллеры Rails 3 (которые действуют как сервис).

В моем Extdirect JS это:

App.mynamespace.MyProject_Controller_V1_workspaceController.getStatus

Этот ответ также приходит на мой маршрутизатор extjs. Нет, я хочу вызвать это действие контроллера и получить ответ.

Я не могу использовать @app.call(env) с измененным request_uri, потому что у меня нет совпадений в route.rb

Можно ли назвать это действие контроллера

Спецификация extdirect: http://tinyurl.com/4y3nc44

Спасибо skeller1

1 Ответ

0 голосов
/ 10 декабря 2011

да, это так!

просто сделайте что-то вроде этого:

status,headers,response=ProjectsController.action("index").call(@env)

, чтобы вы могли вызывать индексный метод ProjectsController.

Осторожно: ExtDirect принимает все типы в поле HTTP-заголовка HTTP_ACCEPT. так что вы можете сделать

 @env['HTTP_ACCEPT'] = "application/json"

перед вашим запросом к действию для установки желаемого типа ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...