我正在尝试在 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 的设计,这本质上是不是很难打扰,还是我在这里遗漏了什么?