Ruby on rails 如何从生产命令行访问控制器操作

Ruby on rails 如何从生产命令行访问控制器操作,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个控制器操作,可以更改数据库中所有记录的状态。我想在生产中运行它。在本地服务器上,我可以访问rails控制台并执行以下操作 => x= WelcomeController.new => x.method_name 在生产中,我没有rails控制台。我可以直接从命令行运行控制器方法吗?执行此类任务的首选方式是什么?我可以将该方法移动到任何地方,如helper等。在控制器中保留此类逻辑是一种糟糕的做法。您肯定应该将其移动到模型或服务层。我建议您看看。您可以在生产模式下运行IRB控

我有一个控制器操作,可以更改数据库中所有记录的状态。我想在生产中运行它。在本地服务器上,我可以访问rails控制台并执行以下操作

=> x= WelcomeController.new
=> x.method_name

在生产中,我没有rails控制台。我可以直接从命令行运行控制器方法吗?执行此类任务的首选方式是什么?我可以将该方法移动到任何地方,如helper等。

在控制器中保留此类逻辑是一种糟糕的做法。您肯定应该将其移动到模型或服务层。我建议您看看。

您可以在生产模式下运行IRB控制台:rails控制台生产将加载生产环境(如果已定义)。默认情况下,rails控制台将运行rails控制台开发;但我认为您不应该在控制台中调用控制器方法。为什么不连接到您的网站并触发控制器的操作?或者最终对控制器操作背后的逻辑进行rake任务?如果您的意思是通过浏览器连接到网站,它将超时,因为该任务将花费很长时间。然后对其进行rake任务或进行控制器操作以触发该特定的rake任务-我最后做了一个耙子任务。谢谢:这篇文章完全脱离主题。@JamilKhan如果您错了,您应该使用服务类来保存流程的逻辑。然后,无论是控制器的操作、Rake任务还是直接在控制台中,您都可以调用该服务类并要求它执行逻辑。这篇文章并非完全脱离主题,有些建议并不适合您,但重构的概念与您的案例非常相关。