skuridin
@skuridin
Idiot. Front end developer.

Как в рельсах можно реализовать темы оформления со раздельными views и assets?

Здравствуйте!
Как в рельсах можно реализовать темы оформления со раздельными views и assets?
Возможно ли сделать так, чтобы генераторы тоже учитывали путь до темы?
Речь идет об одновременном использовании только одной темы, но чтобы их лего было переключать из конфига.
Толкового решения, к сожалению, нагуглить не удалось.
  • Вопрос задан
  • 2677 просмотров
Решения вопроса 2
skuridin
@skuridin Автор вопроса
Idiot. Front end developer.
Получилось как-то так:

# config/application.rb

config.theme = 'default'
config.assets.paths << Rails.root.join('app/themes', config.theme, 'assets/javascripts')
config.assets.paths << Rails.root.join('app/themes', config.theme, 'assets/stylesheets')
config.assets.paths << Rails.root.join('app/themes', config.theme, 'assets/images')
config.assets.paths << Rails.root.join('app/themes', config.theme, 'assets/bower_components')


# app/controllers/application_controller.rb

prepend_view_path Rails.root.join('app/themes', Rails.application.config.theme, 'views')


Если есть информация, как сделать то же самое, но более красиво, буду ждать.
Ответ написан
AMar4enko
@AMar4enko
Вам нужен append_view_path.
Это документация к старой версии, но там человек в комментариях пишет, что он как раз использовал это для организации тем.
apidock.com/rails/ActionController/Base/append_vie...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Стили оформления в Rails приложении обычно подключаются в теге с помощью хелпера stylesheet_link_tag. Передавайте этому хелперу название файла в зависимости от текущей темы оформления, выбранной пользователем. К примеру:
<%= stylesheet_link_tag current_user.ui_theme %>
, где в ui_theme хранится название темы, а в директории app/assets/stylesheets лежит соответствующий файл со стилями. Ну, по крайней мере, я бы сделал так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
24 мая 2019, в 23:37
100000 руб./за проект
24 мая 2019, в 21:53
500 руб./в час
24 мая 2019, в 21:36
500 руб./за проект