Ruby on rails 从另一个控制器调用更新操作

Ruby on rails 从另一个控制器调用更新操作,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有两个控制器:ControllerA和ControllerB 是否可以从ControllerB调用ControllerA.update功能?如下所示: class ControllerB < ApplicationController def foo ControllerA.update args end end class ControllerB

我有两个控制器:
ControllerA
ControllerB

是否可以从
ControllerB
调用
ControllerA.update
功能?如下所示:

class ControllerB < ApplicationController
  def foo
    ControllerA.update args
  end
end
class ControllerB
否,您不能直接调用它,但可以将其重定向到另一个控制器操作。

答案是否。您可以重定向到该控制器的功能


我不知道您希望在该更新中执行什么操作,但请检查是否无法将该函数插入到“aModel”中。

您可以像调用任何其他类一样调用另一个控制器的另一个类方法。动作被定义为实例方法,因此您应该只通过执行
ControllerA.new
来实例化控制器

也就是说,你不应该那样做。我强烈反对走那条路,那不是控制器的用途


如果要在控制器之间共享应用程序中的某些逻辑,请将其放在其他位置,可能放在模型或服务(或其他位置)中,具体取决于您想要实现的功能。

application.rb的受保护部分(如果您希望在所有控制器中共享),或放在lib的模块中(包含在您想要使用该方法的控制器中),是共享控制器代码的适当位置。是的,有关所有可能的选项,请参阅。