从外部ruby脚本调用控制器的方法

时间:2011-10-17 03:12:07

标签: ruby ruby-on-rails-3 rabbitmq

我正在创建我的rails应用程序的外部服务。这总是在监听rabbitmq队列,所有消息都应该重定向到rails控制器的某些方法。 我尝试过这些方法:

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/

第一个允许我只访问模型(无论如何,我认为必须是我想要的基础)。第二个......从来没有为我工作过。最后一个不适用于rails 3(ActionController :: Integration不存在)

我认为如果我弄清楚如何在rails 3中处理会话,那么最后的方法仍然可以使用。无论如何,有人曾经尝试过类似的东西吗?任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

为什么不通过HTTP请求发送请求?您的控制器基本上通过URL显示操作 - 只需向URL发出请求与调用控制器代码基本相同,它使您的代码像软件服务/ API一样工作。如果需要,您甚至可以使用curl来执行此操作。

否则,如果这两个文件位于同一个机器/文件夹中,您可以尝试在另一个中明确地包含一个控制器代码,但这似乎可能不是可行的方法。取决于您希望最终结果如何工作。