Вы должны хранить макет, который пользователь выбрал в переменной сессии (простой, но потеряли, когда пользователь очищает куки или использует другой компьютер), или в базе данных.
Позволяет сказать, что таблицы стилей имеют пять имен, каждое из которых соответствует цвету:
blue_stylesheet.css
green_stylesheet.css
red_stylesheet.css
orange_stylesheet.css
white_stylesheet.css
Поместите эти файлы в части public/stylesheets.
магазин выбор пользователя из таблицы стилей в session[:style]
переменную как так:
session[:style] = 'green'
Это значение сохранится до тех пор, пока пользователь не очистит свои файлы cookie.
Создайте файл application.erb в своих макетах, если он еще не существует. Код в этом файле будет отображаться для каждого шаблона на вашем сайте. Он должен содержать строку, такую как <%= yield %>
. В этом файле место следующее:
<%=stylesheet_link_tag session[:style]+'_stylesheet'%>
Вот оно!
Удачи вам!
Извините, я не задал вопрос правильно. Я имел в виду позволить пользователю выбрать тему, которая будет сохраняться для их страницы независимо от того, кто посетил их страницу, а не только для них. Но, <% = stylesheet_link_tag session [: style] + '_ stylesheet'%> - это то, что я искал. Думаю, я должен позволить пользователю установить предпочтение в профиле, а затем просто заменить [: style] на @ user.theme? Будет ли это работать? Спасибо –