Frage

Wie kann ich mit Ertrag für Template Vererbung in erb? Ich möchte erb in einem einfachen Ruby-CGI-Skript verwenden und wollen eine Basisvorlage und Subtemplate verwenden, wie es mit der Anwendungsvorlage Schienen der Fall ist.

War es hilfreich?

Lösung

Ich glaube nicht, Sie können -. Rails, dass die Infrastruktur im Rahmen von Action bietet

Was Sie in der Lage sein können, zu tun ist, nimmt Action und es in das Skript hinzuzufügen.

Alternativ können Sie ein leichtes Templating-System selbst rollen.

Alternativ alternativ verwenden Rails oder Merb oder Sinatra.

Andere Tipps

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

Es ist wichtig, dass der Aufruf von Kernel#binding innerhalb einer Methode sein, auf diese Weise der Kontext den Block enthält (ERB#result keinen Block nehmen).

Schauen Sie sich Tilt ( http://github.com/rtomayko/tilt/ ). Es ist das Juwel, dass Griffe in Sinatra Templating und bietet ERB Ausbeuten zusammen mit vielen anderen netten Features.

Sie können Tilt verwenden, aber wenn Sie nicht möchten, eine zusätzliche Abhängigkeit hinzuzufügen, hier ist ein besseres Beispiel dafür, wie man in erb ergeben können:

require "erb"

class Controller
  TEMPLATE = ERB.new("Hello <%= @someone %>\n\n<%= yield %>")

  def initialize(someone)
    @someone = someone
  end

  def render
    TEMPLATE.result(self.get_binding { yield })
  end

  def get_binding
    binding
  end
end

puts Controller.new("World").render { "I'm Jack" }
# =>
Hello World

I'm Jack

fand ich die Antwort hier .

Ich schrieb diese hier auf die Standardbibliothek ERB über das Hinzufügen von http://hostiledeveloper.com/2015/05/28/working-with-templates-in-ruby-erb.html

Es ist überraschend ein Schmerz im Hintern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top