我有名为Children
和Father
以及Mother
的控制器,我需要从FatherController
调用MotherController
和ChildrenController
的方法。
我需要从get_details
set_details
方法将JSON数据传递给两个控制器( 不在同一请求 )ChildrenController
方法{1}}。我将根据某些条件调用任何控制器方法。
两个控制器中的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
class MotherController < ApplicationController
def get_details(data)
##
## I need to do some operation with the 'data' received from children controller.
end
end
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
如果有其他方法可以帮助您如何操作或建议我。
感谢。
答案 0 :(得分:14)
易。制作方法.self
class MotherController < ApplicationController
def self.get_details(data)
end
end
然后:
class ChildrenController < ApplicationController
def set_details
MotherController.get_details(data)
end
end
答案 1 :(得分:3)
从控制器中删除此逻辑,或在ApplicationController
中定义它,所有控制器都从中继承。
答案 2 :(得分:1)
为什么不简单地将您的功能或方法写入 MODEL
class MotherModel < ApplicationRecord
def self.mothermodel_method
end
end
class ChildController < ApplicationController
def access_mother_method
@result_from_mother_method = MotherModel.mothermodel_method
end
end