Директива Sprockets depend_on
используется для объявления этих видов зависимостей.Поэтому в верхней части вашего файла css.scss.erb вместе с другими директивами (require и friends) поместите что-то вроде:
//= depend_on "/path/to/colors.rb"
Затем, когда файл /path/to/colors.rb
изменится, он заставит cssобновлять тоже.
К сожалению, я никогда не заставлял это работать с относительным путем к файлу вне одного из каталогов ресурсов (javascripts / stylesheets / images), так что может бытьчто-то в способе Sprockets разрешает пути, которые этому препятствуют, иначе я что-то упускаю.Это оставляет вам возможность указать абсолютный путь, который почти наверняка не будет работать во всех средах вашего приложения, или поместить файл констант в ваши каталоги ресурсов (например, app / assets / stylesheets / colors.rb).
Для справки, вот документ для директивы depend_on
из источника Sprockets (2.0.3), в sprockets / directive_processor.rb
# Allows you to state a dependency on a file without
# including it.
#
# This is used for caching purposes. Any changes made to
# the dependency file will invalidate the cache of the
# source file.
#
# This is useful if you are using ERB and File.read to pull
# in contents from another file.
#
# //= depend_on "foo.png"
#
Если кто-нибудь знает способ указатьотносительные пути к другим местам, таким как конфиг / инициализаторы или что-то еще, пожалуйста, дайте мне знать!