Если ваш компонент всегда используется, просто переместите включение JavaScript в рендеринг макета в view.yml вашего приложения:
default:
javascripts: [my_js]
Нет необходимости отделять вызов JS, когда он всегда используется.
UPDATE:
Если вы должны поддерживать включение JS с компонентом, вы можете поместить вызов компонента в слот перед вызовом include_javascripts()
, чтобы добавить его в стек для рендеринга, а затем включить слот в подходящее место:
<?php slot('nav') ?>
<?php include_component('nav', 'nav'); ?>
<?php end_slot(); ?>
<html>
<head>
<?php include_javascripts() ?>
...
</head>
<body>
<?php include_slot('nav'); ?>
<?php echo $nav ?>
...
</body>
</html>