[RUBY] Créez un fichier statique qui développe les variables à l'aide de la classe ERB

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

Créez un fichier statique qui développe les variables à l'aide de la classe ERB
Comment créer un fichier jar et un fichier war à l'aide de la commande jar
Un moyen simple de créer une classe de mappage lors de l'utilisation de l'API
Créez un fichier jar avec la commande
Lire un fichier à l'aide de la classe Scanner de Java
Comment créer une classe qui hérite des informations de classe
Créez un écran d'authentification de connexion à l'aide de la fonction de session
Tester une classe qui reçoit un contexte et lit et écrit des fichiers
Création d'un MOB à l'aide du plug-in Minecraft Java Mythicmobs | Préparation 1
[Java] Créer un fichier temporaire
Créer une loterie avec Ruby
Créez un grand nombre d'enregistrements avec une seule commande à l'aide du fichier seeds.rb Ruby on Rails
Créez un calendrier à partir de la classe Calendar en spécifiant l'année et le mois
[Android] Créer un calendrier à l'aide de GridView
Créer un projet Jetty à l'aide d'Eclipse
Créer un projet Tomcat à l'aide d'Eclipse
Télécharger des fichiers à l'aide de Java HttpURLConnection
Créer un projet Java à l'aide d'Eclipse
Créer une fonction de filtrage en utilisant actes-as-taggable-on
Un murmure sur la classe utilitaire
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
Créez une carte du métro de Tokyo à partir du fichier CSV de la station data.jp
[Java] Créez un fichier jar compressé et non compressé avec la commande jar
Comment savoir quelle version Java d'un fichier de classe a été compilée
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
Exemple de programme qui renvoie la valeur de hachage d'un fichier en Java
[Java] Implémenter une fonction qui utilise une classe implémentée dans le modèle Builder