Compass est un precompilateur qui est appele de maniere "statique" par
l'asset pipeline.
Tu peux l'utiliser en Ruby si tu veux mais c'est galere.
Moi je te conseillerais de mixer la vision d'olivier et celle de guirec en
utilisant un controller pour generer la feuille de style, un template
css.scss.erb pour generer la feuille de style et jouer avec le cache
controller / etags pour ne regenerer que quand c'est necessaire.
# routes
resource :custom_stylesheet
# controller
class CustomStylesheetController < ActionController::Base
respond_to :css
def show
@setting = settings
# C'est peut etre pas complet, je sais pas.
if stale?(last_modified: @settings.updated_at, etag: @setting.cache_key)
respond_with @settings
end
end
end
# template (show.css.scss.erb)
body {
@include background(linear-gradient(<%= settings.main_color %>, <%=
settings.secondary_color %>));
}
# template appelant
<%= stylesheet_link_tag custom_stylesheet_path %>
Sinon l'autre solution, c'est de pas gerer ca cote serveur. Si tu le geres
en javascript en n'envoyant que l'objet settings a ton client, c'est
nettement plus simple.
2015-11-25 1:48 GMT+08:00 Alexandre Friquet <[email protected]>
:
> Le 24/11/2015 17:59, Alexandre Friquet a écrit :
>
>> Solution intéressante, à voir si je peux utiliser les mixins de compass
>> pour générer un css de dégradé linéaire, mais ça doit pouvoir se faire. ;)
>>
>
> Bon, j'y suis presque :
>
> def custom_css
> content_tag :style do
> my_css = <<SCSS
> body {
> @include background(linear-gradient(#{settings.main_color},
> #{settings.secondary_color}));
> }
> SCSS
> Sass::Engine.new(my_css, syntax: :scss).render
> end
> end
>
> Le problème est qu'il ne semble pas trouver compass (Undefined mixin
> 'background'.) contrairement à ce qui est écrit ici :
> http://stackoverflow.com/questions/22431552/process-sass-and-compass-in-rails-view-with-passed-variables
>
>
> --
> Alexandre
>
> --
> --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> [email protected]
> --- Vous recevez ce message, car vous êtes abonné au groupe Google
> Groupes Railsfrance.
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> [email protected].
> Pour plus d'options, visitez le site https://groups.google.com/d/optout .
>
--
--
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]
---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant,
envoyez un e-mail à l'adresse [email protected].
Pour plus d'options, visitez le site https://groups.google.com/d/optout .