Я пытаюсь создать Rails Engine, который обслуживает активы своего хост-приложения. В частности, я хотел бы иметь возможность делать следующее:
# 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
Где миксин «my-rockin-engines-mixin» определен где-то в активах MyRockinEngine.
Проблема
У меня есть цепочка @imports из хост-приложения через движок. (Я использую @imports по причинам, описанным здесь.) Любой определения стилей, которые я создаю в ресурсах Engine, доступны для хост-приложения. Однако ни один из миксинов SASS, которые я создаю, не доступен нигде, кроме как в том же файле, в котором определен миксин.
По сути, мне интересно, не работает ли моя реализация, потому что либо (1) я использую двигатели запутанным образом; (2) Невозможно совместно использовать миксины между Rails Engines и их хост-приложением; (3) Существует некоторый аспект директив sprockets/rails/compass/sass (@import/require), который я неправильно понимаю.
Любая помощь будет принята с благодарностью! И я всегда могу предложить дополнительные подробности, если они кому-то понадобятся.