Je voudrais utiliser la classe ERB pour développer des variables telles que le fichier Rails html.erb et l'enregistrer en tant que fichier statique.
Par exemple, chaque utilisateur a ses paramètres de feuille de style préférés dans les paramètres de préférences, mais une fois définie, la feuille de style elle-même est un fichier statique dédié à cet utilisateur jusqu'à ce qu'il y ait un changement. Il est plus efficace de le lire comme.
Par exemple, écrivez une feuille de style contenant de telles variables.
css:_style.css.erb
body {
background-color: <%= bg_color %>;
}
.header {
color: <%= title_color %>;
}
.text {
color: <%= text_color %>
}
Les paramètres de préférence lus par ActiveRecord sont Si vous avez une variable objet appelée @preference avec @ preference.bg_color, @ preference.title_color, @ preference.text_color
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)
Vous pouvez obtenir un fichier statique avec les variables développées comme suit.
Au début, je pensais que cela élargirait simplement la variable d'instance @preference, mais je ne pouvais pas parce que je lisais le modèle à partir du fichier, j'ai donc utilisé la méthode que j'ai passée sous forme de hachage.
Recommended Posts