【问题标题】:Is there a usable rendering context in sinatra/padrino?sinatra/padrino 中是否有可用的渲染上下文?
【发布时间】: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 的设计,这是否天生就很难打扰,还是我在这里遗漏了什么?

【问题讨论】:

    标签: ruby sinatra padrino


    【解决方案1】:

    我意识到只要我继续阅读,答案就在 Objects on Rails 这本书中。我需要从模板内显式传递上下文:模板内的exhibit(object, self) 导致模板的渲染上下文作为第二个参数传递。当然。

    我想这毕竟不是特定于帕德里诺的,当答案非常简单时,我正在寻找一些复杂的东西。

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 2012-02-19
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 2014-11-27
      • 2023-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多