如何调用控制器的方法

我有一个与传入请求无关的function(如get,post等)。

但我想遵循MVC约定并使其像模型控制器:

  • 在控制器部分我将处理来自其他部分的收入请求,决定从哪个模型检索信息,授权,过滤等;

  • 在模型部分我将存储信息,validation它,使它过期等。

在Rails中,控制器的动作可以由路径文件指示的收入请求调用。

对我来说问题是,如果我创建了这样的控制器:

class SomeController < ApplicationController def some_action; end end 

如何从我的应用程序中的任何位置调用SomeController方法some_action

PS调用SomeController.new.some_action对我来说似乎不对,因为我认为所有控制器都是app对象的一部分。

您可以通过实例化控制器来完成此操作。

 SomeController.new.some_action 

然而,这不是真正的MVC方式。 我真的不知道你想用它做什么,但可能还有更好的方法。 例如,它可以像在模型中那样完成,因为数据的修改应该不属于控制器。

我认为您应该创建一个PORO,它将在某些方法中封装此function。 因此,任何依赖于逻辑的function都应该在其中,而不是在控制器中。 然后你可以在任一控制器中调用它们。