我正在尝试在 padrino 应用程序中使用Exhibit 模式,但要正确执行此操作,我需要访问渲染上下文。也就是说,我需要一些对象context
,这样调用某些东西context.render('accounts/index')
会产生与render 'accounts/index'
从控制器内部调用时相同的输出(假设所有变量都设置相同,并且app/views/accounts/index.erb
是一个模板文件)。
我在 padrino 公共 API 中找不到任何这样做的东西,所以我试图更深入地挖掘。控制器中已有render
的方法包装了sinatra的render
方法,这是一个私有的实例方法。所以它显然不是在类MyApp
(即Padrino::Application
子类)上定义的。MyApp.new
结果是一个实例Rack::Session::Cookie
而不是它自己的实例,并且我能找到的所有 padrino 方法都没有返回应用程序的现有实例,context
如果我调用它的私有render
方法,这将是该对象的合适候选者。
给定的 sinatra 和 padrino 的设计,这本质上是不是很难打扰,还是我在这里遗漏了什么?