należy przechowywać układ, że użytkownik wybrał w zmiennej sesji (najprostszy, ale utracone, gdy użytkownik ściąga pliki cookie lub korzysta z innego komputera) lub w bazie danych.
Powiedzmy arkusze stylów mają pięć nazwisk, z których każda odpowiada kolor:
blue_stylesheet.css
green_stylesheet.css
red_stylesheet.css
orange_stylesheet.css
white_stylesheet.css
umieszczenie tych plików wewnątrz public/stylesheets.
Store wyboru użytkownika w arkuszu stylów do session[:style]
zmiennej tak:
session[:style] = 'green'
Wartość ta będzie obowiązywać tak długo, jak długo użytkownik nie usunie plików cookie.
Utwórz plik application.erb w swoich układach, jeśli jeszcze nie istnieje. Kod w tym pliku będzie renderowany dla każdego szablonu w Twojej witrynie. Powinien zawierać linię, taką jak <%= yield %>
. W tym pliku miejsce następujące:
<%=stylesheet_link_tag session[:style]+'_stylesheet'%>
To jest to!
Powodzenia!
Przykro mi, że nie podałem poprawnie pytania. Chodziło mi o to, by użytkownik mógł wybrać motyw, który będzie obowiązywać dla jego strony, niezależnie od tego, kto odwiedził ich stronę, a nie tylko dla nich. Ale <% = stylesheet_link_tag session [: style] + '_ stylesheet'%> jest tym, czego szukałem. Sądzę, że powinienem zezwolić użytkownikowi na ustawienie preferencji w profilu, a następnie zastąpienie [: style] przez @ user.theme? Czy to zadziała? Dzięki –