ОБНОВЛЕНИЕ: теперь есть гем, который сделает это за вас: js-routs
Проблема в том, что Sprockets оценивает ERB вне контекста вашего приложения на Rails, и большинство ожидаемых вами вещей отсутствует.
Вы можете добавить вещи в свой контекст Sprockets следующим образом:
Rails.application.assets.context_class.class_eval do
include Rails.application.routes.url_helpers
end
Это все хорошо, но заставить помощников, которым требуется идентификатор, работать немного сложнее. Я собираюсь использовать технику, которая называется Шаблон URI :
var event_path = "<%= CGI.unescape event_path('{event_id}') %>";
, который возвращает /events/{event_id}
, который вы можете отобразить в URL, используя объект, подобный { event_id: 1 }
. См. Метод SugarJS String # assign в качестве примера реализации этого. Вы также можете свернуть свои , как я.