【发布时间】:2012-07-05 21:01:12
【问题描述】:
我正在尝试在 padrino 应用程序中使用Exhibit pattern,但要正确执行此操作,我需要访问渲染上下文。也就是说,我需要有一些对象context,这样调用context.render('accounts/index') 的内容将产生与从控制器内部调用render 'accounts/index' 时相同的输出(假设所有变量都设置相同并且@ 987654325@是一个模板文件)。
我在 padrino 公共 API 中找不到任何可以做到这一点的东西,所以我试图深入挖掘。控制器中现有的render方法包装了sinatra的render方法,这是一个私有实例方法。所以它显然没有在MyApp 类(即Padrino::Application 子类)上定义。 MyApp.new 导致Rack::Session::Cookie 的实例而不是其自身,并且我能找到的所有 padrino 方法都没有返回应用程序的现有实例,如果我调用它,这将是 context 对象的合适候选者私有render 方法。
对于给定的 sinatra 和 padrino 的设计,这是否天生就很难打扰,还是我在这里遗漏了什么?
【问题讨论】: