0

我真的很喜欢 Ramaze 自动渲染模板的方式,而无需调用渲染函数。在 Espresso 中可以有同样的效果吗?

4

1 回答 1

1

是的,我在使用 Ramaze 时也喜欢它。

但是,对于 Espresso,有多种原因不能自动执行此操作。

我将发布一个简单的方法来实现这一点,而不是列出它们。

您只需after为将启用自动渲染的控制器设置一个挂钩。

您可以在每个控制器内设置挂钩,也可以在构建应用程序时一次性设置:

E.new do
  setup_controllers do
    after { response.body = [ render ] }
  end
  # ...
end

您当然可以仅为特定控制器设置它:

E.new do
  setup_controllers do
    if self == Foo || self == Bar
      after { response.body = [ render ] }
    end
  end
  # ...
end

以及具体行动:

E.new do
  setup_controllers do
    if self == Foo
      after(:index) { response.body = [ render ] }
    elsif self == Bar
      after(/blah/) { response.body = [ render ] }
    else
      after { response.body = [ render ] }
    end
  end
  # ...
end

注意:出于演示目的发布了一些毛茸茸的代码,根据您的应用程序的需要对其进行优化。

于 2013-05-09T15:21:24.170 回答