开发者

Is it possible to call a Rails 3 controller within Rack middleware?

I want to use ExtDirect for a 3rd party extjs user interface in Rails 3. So I have started to update the active-direct gem to work with Rails 3. Here is the updated version: https://github.com/stonegao/active-direct

At the moment my modified active direct plugin/gem works with models. I'm able to do this in JavaScript:

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

That's great.

Now I want to use some special Rails 3 controllers (that act like a service).

In my Extdirect JS is this:

App.mynamespace.MyProject_Controller_V1_workspaceController.getStatus

This response also comes to my extjs router. No I want call this controller action and get the response.

I can't use @app.call(env)开发者_运维技巧 with a changed request_uri because I have no match in routes.rb

Is it possible to call this controller action

Specification of extdirect: http://tinyurl.com/4y3nc44

Thanks skeller1


yes, it is!

just do something like this:

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

so you can call the index method of the ProjectsController.

beware: ExtDirect accepts all types in the HTTP_ACCEPT http header field. so you can do a

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

before your request to an action to set your wanted response type.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜