Я пытаюсь создать Rails Engine, который обслуживает активы в своем хост-приложении. В частности, я хотел бы быть в состоянии сделать следующее:Использование Rails Engine для совместного использования SASS Mixins по проектам
# Host App's Gemfile
gem 'my-rockin-engine'
И ...
# Host App's application.css
/*
*= require styles
*/
@import 'my-rockin-engine/mixins'
И ...
# Host App's style.sass
.host-app-defined-class-name
+my-rockin-engines-mixin
Где Mixin «my- rockin-engines-mixin "определяется где-то в активах MyRockinEngine.
Проблема
У меня есть цепь @imports от хозяина приложения, через двигатель. (Я использую @imports по причинам described here.) Любые определения стиля, которые я создаю в активах Engine, доступны для хост-приложения. Тем не менее, ни один из создаваемых мной мишеней SASS не доступен нигде, кроме одного файла, в котором указан mixin.
По существу, мне интересно, не работает ли моя реализация, потому что либо (1) я использую Двигается в замешательстве; (2) Невозможно обменяться миксинами между Rails Engines и их хост-приложением; (3) Есть некоторые аспекты директив sprockets/rails/compass/sass (@ import/require), которые я недопонимаю.
Любая помощь была бы принята с благодарностью! И я всегда могу предложить дальнейшие подробности, если они им понадобятся.
То же самое касается файлов scss. Как только я переименовал свой файл движка в «stylesheets/engine/engine_css_file.scss» из «stylesheets/engine/engine_css_file.css.scss», он позволил мне использовать мои миксины от движка к приложению. – ryanjones