Для приложения на Rails 3.1 некоторые из JavaScript всего моего сайта включаются, только когда выполняются определенные условия в реальном времени, особые условия экземпляра. Это означает, что я не могу поместить его в файл application.js нового конвейера активов, потому что он не анализируется erb для встроенного Ruby в текущем контексте. По сути, я включаю сочетания клавиш на основе текущего пользователя, который вошел в систему.
Мой вопрос: куда должен идти этот JavaScript со встроенным кодом, чтобы встроенный Ruby по-прежнему анализировался для каждого доступа к странице с соответствующим контекстом (т.е. текущим, вошедшим в систему пользователем)?
Ответ, похоже, заключается в том, чтобы поместить его в представление макета application.html.erb внизу, но это выглядит так, будто я прячу код javascript в не интуитивно понятном месте.
Я попытался создать файл application2.js.erb, но затем я получил ошибки о неопределенных переменных, которые, я думаю, могут быть из-за того, что механизм ресурсов анализирует этот файл только один раз, прежде чем выходные данные кэшируются, а область действия исправить еще для таких вещей, как current_user.
Итак, использование application.html.erb прекрасно работает здесь, и вопрос не в том, как заставить его работать функционально. Вместо этого мне интересно, есть ли более элегантный способ интегрировать модель конвейера ресурсов с моими требованиями, и при этом по-прежнему хранить большую часть моего JavaScript в каталоге assets / javascripts.