调用另一个控制器的方法

Gok*_*l M 5 controller ruby-on-rails ruby-on-rails-4

我有一个名为控制器ChildrenFatherMother,我需要调用的方法FatherController,并MotherControllerChildrenController.

我需要(通过一个JSON数据到两个控制器不能在同一请求)get_details从方法set_details的方法ChildrenController.我将根据某些条件调用任何控制器方法.

没有途径用于get_details在两个控制器的方法.我不需要任何帮助方法来编写.

我需要调用多个Controller的方法,而不是通过继承.

父亲控制器

class FatherController < ApplicationController

  def get_details(data)
    ##
    ## I need to do some operation with the 'data' received from children controller.
  end

end
Run Code Online (Sandbox Code Playgroud)

母亲控制器

class MotherController < ApplicationController

  def get_details(data)
    ##
    ## I need to do some operation with the 'data' received from children controller.
  end

end
Run Code Online (Sandbox Code Playgroud)

儿童控制器

class ChildrenController < ApplicationController

  data = {
      "id":"2",
      "expiry_date":"25-09-2016"
  }.as_json

  def set_details        
    ## get_details(data) -> FatherController
    ## get_details(data) -> MotherController
  end

end
Run Code Online (Sandbox Code Playgroud)

如果有任何其他方法,请帮助如何执行此操作或建议我.

谢谢.

Rus*_*lan 15

简单.制作方法.self

class MotherController < ApplicationController
  def self.get_details(data)
  end
end 
Run Code Online (Sandbox Code Playgroud)

然后:

class ChildrenController < ApplicationController
  def set_details        
    MotherController.get_details(data)
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 不适用于 Rail 5+ :`未初始化的常量 ChildrenController::MotherController ` ... (2认同)