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

时间:2014-02-24 15:58:38

标签: ruby-on-rails ruby

我有两个控制器:ControllerAControllerB

是否可以从ControllerA.update拨打ControllerB功能?如下所示的东西:

class ControllerB < ApplicationController
  def foo
    ControllerA.update args
  end
end

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

不,你不能直接调用它,但是你可以redirect到另一个控制器动作。

答案 2 :(得分:0)

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

我不知道你想在该更新中做什么,但检查你是否不能将该功能插入“aModel”。