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