我有两个控制器:ControllerA
和ControllerB
。
是否可以从ControllerA.update
拨打ControllerB
功能?如下所示的东西:
class ControllerB < ApplicationController
def foo
ControllerA.update args
end
end
答案 0 :(得分:3)
您可以像其他任何类一样调用另一个控制器的另一个类方法。操作被定义为实例方法,因此您应该通过执行ControllerA.new
来实例化控制器。
那就是说,你不应该这样做。我强烈反对走这条路,这不是控制器的使用方式。
如果您的应用程序中的某些逻辑要在控制器之间共享,请将其放在其他位置,也可以放在模型或服务中(或其他内容),具体取决于您希望实现的目标。
答案 1 :(得分:2)
不,你不能直接调用它,但是你可以redirect
到另一个控制器动作。
答案 2 :(得分:0)
答案是否定的。您可以重定向到该控制器的功能。
我不知道你想在该更新中做什么,但检查你是否不能将该功能插入“aModel”。