我正在清理一些依赖于自定义控制器帮助方法的代码,通过创建一个“普通的 Ruby”Presenter对象来实现。在我的控制器中,我能够将视图上下文传递给该类:
def show
# old code: view_context.bad_helper_method
@foobar = FoobarPresenter.new(Foobar.find(params[:id]), view_context)
end
class FoobarPresenter
def initialize(model, view_context)
@model = model
@view_context = view_context
end
def something
@view_context.bad_helper_method
end
end
然而,我不确定在我的测试中传递什么。我宁愿动态地提取helper/view_context,以便无需传递它。
我如何在控制器之外访问视图/控制器助手上下文?
这是一个Rails 3.2项目。
ActionView::Base.new
时会报错,错误信息为wrong number of arguments (given 0, expected 3)
。 - jrochkind_view_context = InvoicesController.new.view_context
。 - Steve Meisner