2013-01-03 107 views
0

我有一个与传入请求无关的功能(如get,post等)。如何调用控制器的方法

但是我想跟进MVC公约,使它像模型的控制器:

  • 在控制器部分,我会处理来自另一部分收入的要求,决定从哪个模型应该检索信息,授权,过滤等等;

  • 模型部分,我将存储信息,验证它,使其过期等

在Rails控制器的动作可以通过路由文件执导收入要求而召开。

,我的问题是,如果我创建了这样一个控制器:

class SomeController < ApplicationController 

    def some_action; end 

end 

我如何可以调用方法some_actionSomeController在我的应用程序的任何地方吗?

P.S.调用SomeController.new.some_action对我来说并不合适,因为我认为所有控制器都是应用程序对象的一部分。

+0

你错了。 'SomeController.new.some_action'是正确的。没有神奇的“应用程序”对象,无论如何。 – meagar

+0

得到它,谢谢! – megas

回答

0

您可以通过实例化控制器来实现。

SomeController.new.some_action 

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

+0

对我来说这看起来不太合适,所有控制器都是应用程序对象的一部分,如何调用它。 – megas

+0

我写了你如何称呼它,如果你喜欢。 – Matzi

+0

创建对象的原因是什么,而此时我们已经在应用程序的某个地方实例化了对象? – megas

0

我认为你应该创建一个PORO,它将用某种方法封装这个功能。所以任何逻辑相关的功能都应该在控制器内而不是在控制器内。然后你可以在两个控制器中调用它们。

+0

您能否指出PORO文档。 – megas

+0

抱歉,PORO只是一个普通的老红宝石物体.. – bullfrog