è necessario memorizzare il layout che l'utente ha scelto nella variabile di sessione (più facile, ma ha perso quando l'utente cancella i cookie o utilizza un computer diverso), o nel database.
Diciamo che i fogli di stile hanno cinque nomi, ciascuno corrispondente ad un colore:
blue_stylesheet.css
green_stylesheet.css
red_stylesheet.css
orange_stylesheet.css
white_stylesheet.css
Posizionare questi file all'interno di public/stylesheets.
Conservare scelta dell'utente del foglio di stile nella variabile session[:style]
in questo modo:
session[:style] = 'green'
Questo valore persisterà per tutto il tempo in cui l'utente non cancella i propri cookie.
Creare un file application.erb nei propri layout se uno non esiste già. Il codice in questo file verrà reso per ogni modello sul tuo sito. Dovrebbe contenere una riga come <%= yield %>
. In questo luogo il file seguente:
<%=stylesheet_link_tag session[:style]+'_stylesheet'%>
Questo è tutto!
Buona fortuna!
Mi dispiace non aver indicato correttamente la domanda. Intendevo lasciare che l'utente scelga un tema che persisterà per la sua pagina, indipendentemente da chi ha visitato la sua pagina, non solo per loro. Ma, <% = stylesheet_link_tag session [: style] + '_ stylesheet'%> è quello che stavo cercando. Suppongo che dovrei consentire all'utente di impostare le preferenze nel profilo e quindi sostituire semplicemente [: style] con @ user.theme? Funzionerà? Grazie –