【发布时间】:2019-06-28 19:26:38
【问题描述】:
我想从另一个ResultController#actionb 调用TestController#actiona,传递actiona 的参数以及rails 中的调用。
有谁知道实现这一目标的最有效方法是什么?
我尝试过像下面的代码那样调用方法,但出现错误。我做错了什么?
示例伪代码:
class TestController < ApplicationController
def actiona
# @value = do_something_with(params) // we are doing something with params
# render resource: @value, status: 201
end
end
class ResultController < ApplicationController
def actionb
# new_params = params + some_other_things // building new params
# @new_value = TestController.new.actiona(new_params) // we are passing the new_params
# render resource: @new_value, status: 201
end
end
我希望对ResultController#actionb 的调用使用params 调用TestController#actiona 并呈现相同的@value,如果我们直接调用它,TestController#actiona 会返回。
【问题讨论】:
-
一个控制器动作并不意味着被另一个控制器的动作调用。控制器操作旨在处理单个请求-响应周期。或许可以考虑创建一个提供共享功能的服务。
-
谢谢,我要走这条路,我在那里打错字了,我要在那里实例化 TestController 如下
TestController.new.actiona(new_params)
标签: ruby-on-rails ruby performance controller ruby-on-rails-5.2