我真的很喜欢 Ramaze 自动渲染模板的方式,而无需调用渲染函数。在 Espresso 中可以有同样的效果吗?
问问题
84 次
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 回答