Это не сработает.
Файлы в конвейере компилируются по первому запросу, основываясь на их содержимом (и любом разрешенном erb) в то время.
Если вы ссылаетесь на что-то внутри файла конвейера, оно не будет обновляться, если это будет изменено в другом месте.
Изменить в ответ на комментарий:
Извините, мне следовало быть яснее. Общий случай этого не сработает.
В случае использования его с require, оператор require
является специальной директивой Sprockets. Он обрабатывается Sprockets до того, как его получает обработчик erb.
Директива требует один аргумент - строку. В этом случае вы передали 3 аргумента директиве require: открывающий тег erb, строку в кавычках и закрывающий тег erb.
Вот почему вы получаете ошибку аргумента 3 для 1.
Лучший (и, возможно, единственный) способ динамически включать файлы во время выполнения - из уровня просмотра.