sinatra / padrino中是否有可用的渲染上下文?

时间:2012-07-05 12:45:22

标签: ruby sinatra padrino

我试图在padrino应用程序中使用Exhibit pattern,但要正确地执行此操作,我需要访问渲染上下文。也就是说,我需要有一些对象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方法都会返回应用程序的现有实例,这将是{{1}的合适候选者}如果我调用它的私有context方法。

对于给出的sinatra和padrino的设计来说,这本身就太难以打扰了,还是我在这里缺少某些东西?

1 个答案:

答案 0 :(得分:1)

我意识到答案是在“对象上的轨道”一书中,如果我只是继续阅读的话。我需要在模板中显式传递上下文:模板内的exhibit(object, self)导致模板的渲染上下文作为第二个参数传递。当然。

我想这毕竟不是特定于padrino,而且当答案非常简单时,我正在寻找复杂的东西。