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