没有铁轨的ERB产量

xav*_*r23 14 ruby ruby-on-rails erb

如何在erb中使用yield进行模板继承?我想在一个普通的ruby CGI脚本中使用erb,并希望使用一个基本模板和子模板,就像它与应用程序模板一样Rails.

tom*_*dxw 38

def a
  ERB.new('<%= yield %>').result(binding)
end
a{123}
#=> "123"
Run Code Online (Sandbox Code Playgroud)

重要的是调用Kernel#binding在方法内部,这样上下文包含块(ERB#result不会占用块).


exi*_*utt 5

查看Tilt(http://github.com/rtomayko/tilt/).它是处理Sinatra模板的宝石,它提供ERB产量以及许多其他不错的功能.


Tob*_*ede 3

我不认为你可以 - Rails 提供了该基础设施作为 actionpack 的一部分。

您可以做的就是获取 actionpack 并将其添加到您的脚本中。

或者,您可以自己推出一个轻量级模板系统。

或者也可以使用 Rails 或 Merb 或 Sinatra。