2011-10-17 87 views
0

我创造我的Rails应用程序的外部服务呼叫控制器的方法。这始终是监听RabbitMQ的队列,他们所有的消息应被重定向到轨控制器的一些方法。 我已经试过这些方法:从外部Ruby脚本

AMQP subscriber inside Rails app

What's the correct way to run one controller action from another controller action without an HTTP redirect?

http://www.misuse.org/science/2007/07/24/firing-rails-controller-actions-from-command-line-console/

第一个让我唯一的访问模式(无论如何,我想一定是我想要的底座) 。第二个......从来没有为我工作过。而最后一个没有工作在轨道3(ActionController的整合::不存在)

我认为,最后一种方法仍然可以使用,如果我搞清楚了会议是如何在轨道3处理。在任何有人曾经尝试过类似的东西吗?任何建议将不胜感激。

回答

0

为什么不只是通过发送一个HTTP请求的请求?你的控制器基本上使得动作通过URL可见 - 简单地使该URL的请求基本相同呼叫控制器代码,它让你的代码一样的软件服务/ API工作。如果需要,您甚至可以使用curl来执行此操作。

否则,如果这两个文件是在同一台机器/文件夹,你可以尝试明确包括在其他的一个控制器代码,但是,似乎是也许不是要走的路。取决于您希望最终结果如何工作。

+0

我正在考虑使用http请求作为最后一个选项。基本上是一个性能问题。直接访问控制器应该比通过http请求更快。关于包含控制器的代码,这个想法应该有一个干代码 –

+0

啊,这是有道理的。 – jefflunt