【发布时间】:2014-04-08 11:54:35
【问题描述】:
我想从 rake 任务中调用控制器动作。我的问题是准备http请求的最佳方法是什么?感谢所有提示。
编辑: 还有其他提示吗?我试过这个但不起作用:
controller_obj = Controller.new
controller.your_method
我遇到了这个异常:
rake aborted!
uninitialized constant Controller
编辑2: 我试过了:
sess = ActionController::Integration::Session.new
sess.post('/route', 'codes=3')
但我得到了(我在 rake 文件中需要 'action_controller/integration'):
rake aborted!
cannot load such file -- action_controller/integration
【问题讨论】:
-
你想做什么?控制器应该处理请求,你的任务不是真正的请求,看起来你需要别的东西,但不清楚,因为你没有说你真正想要做什么
-
临时我需要从 rake 任务中调用这个控制器。所以我需要模拟http请求。以及如何模拟 POST 请求?或使用参数获取
-
这就是你想要做的“如何”,但你想要什么?为什么需要模拟帖子或获取请求?也许你需要别的东西,在任务中调用控制器动作是不正常的
-
很简单。我必须添加产品数据,我想向控制器发送一些参数,然后在数据库中创建实体。在不久的将来,我将使用某种形式创建视图,并使用此控制器。但现在我想将一些数据从 rake 任务发送到控制器并将实体添加到数据库。无论如何,我都会将这些数据保存在我的控制器中。
-
你不能这样做,你必须将逻辑移动到模型中,也许任务中的一些逻辑和你的控制器和你的任务会有类似(但不同)的代码,你正在尝试将控制器用于不适合的事物
标签: ruby-on-rails ruby http