[RUBY] Erstellen Sie eine statische Datei, die Variablen mithilfe der ERB-Klasse erweitert

Ich möchte die ERB-Klasse verwenden, um Variablen wie die Datei Rails html.erb zu erweitern und als statische Datei zu speichern.

In der Situation hat beispielsweise jeder Benutzer seine bevorzugten Stylesheet-Einstellungen in den Voreinstellungen. Sobald diese festgelegt sind, ist das Stylesheet selbst eine statische Datei, die diesem Benutzer gewidmet ist, bis eine Änderung vorgenommen wird. Es ist effizienter, es als zu lesen.

Schreiben Sie beispielsweise ein Stylesheet, das solche Variablen enthält.

css:_style.css.erb


body {
  background-color: <%= bg_color %>;
}
.header {
  color: <%= title_color %>;
}
.text {
  color: <%= text_color %>
}

Die von ActiveRecord gelesenen Voreinstellungen Wenn Sie eine Objektvariable mit dem Namen @preference mit @ priority.bg_color, @ priority.title_color, @ priority.text_color haben

style_erb = ERB.new(File.read("_style.css.erb"))
style_res = style_erb.result_with_hash(@preference.attributes)
File.write("style_#{@preference.user_id}.css", style_res)

Sie können eine statische Datei mit den folgenden Variablen abrufen.

Zuerst dachte ich, es würde einfach die Instanzvariable @preference erweitern, aber ich konnte nicht, weil ich die Vorlage aus der Datei las, also verwendete ich die Methode, die ich als Hash übergeben hatte.

Recommended Posts

Erstellen Sie eine statische Datei, die Variablen mithilfe der ERB-Klasse erweitert
So erstellen Sie eine JAR-Datei und eine War-Datei mit dem Befehl jar
Einfache Möglichkeit zum Erstellen einer Zuordnungsklasse bei Verwendung der API
Erstellen Sie mit dem Befehl eine JAR-Datei
Lesen einer Datei mit der Scannerklasse von Java
So erstellen Sie eine Klasse, die Klasseninformationen erbt
Erstellen Sie mit der Sitzungsfunktion einen Anmeldeauthentifizierungsbildschirm
Testen Sie eine Klasse, die einen Kontext empfängt und Dateien liest und schreibt
Erstellen eines MOB mit dem Minecraft Java Mythicmobs-Plug-In | Vorbereitung 1
[Java] Erstellen Sie eine temporäre Datei
Erstellen Sie eine Lotterie mit Ruby
Erstellen Sie mit der Datei Ruby on Rails seeds.rb eine große Anzahl von Datensätzen mit einem einzigen Befehl
Erstellen Sie einen Kalender aus der Kalenderklasse, indem Sie das Jahr und den Monat angeben
[Android] Erstellen Sie einen Kalender mit GridView
Erstellen Sie mit Eclipse ein Jetty-Projekt
Erstellen Sie ein Tomcat-Projekt mit Eclipse
Laden Sie Dateien mit Java HttpURLConnection hoch
Erstellen Sie ein Java-Projekt mit Eclipse
Erstellen Sie eine Filterfunktion mit Acts-as-Taggable-On
Ein Murmeln über die Utility-Klasse
So erstellen Sie eine Abfrage mithilfe von Variablen in GraphQL [Verwenden von Ruby on Rails]
Erstellen Sie eine U-Bahn-Karte von Tokio aus der CSV-Datei von station data.jp
[Java] Erstellen Sie mit dem Befehl jar eine JAR-Datei, die sowohl komprimiert als auch nicht komprimiert ist
So finden Sie heraus, welche Java-Version der Klassendatei kompiliert wurde
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
Beispielprogramm, das den Hashwert einer Datei in Java zurückgibt
[Java] Implementieren Sie eine Funktion, die eine im Builder-Muster implementierte Klasse verwendet