У меня есть файл somefile.js.coffee.erb, который обрабатывается конвейером ресурсов Rails. Мой код ERB возвращает некоторую строку, которую Coffee не может проанализировать, что приводит к исключению SyntaxError. Я хотел бы заглянуть в сгенерированный файл somefile.js.coffee или в любой промежуточный файл, обработанный конвейером активов.
Я безуспешно пытался изучить Sprockets:
environment = Sprockets::Environment.new
MyApplication::Application.config.assets.paths.each {|p| environment.append_path p}
rerb = environment['somefile.js.coffee.erb']
rerb.source #=> it's already preprocessed
Или заглянуть в \tmp\cache\assets, но там тоже только предварительно обработанные файлы, дополнительно закрытые отпечатком имени.
Может быть, есть способ подключиться к конвейеру активов, я понятия не имею, как это сделать.
Зачем мне ЭРБ? Для создания заглушек клиентской модели с полями и проверками, соответствующими модели Rails, с помощью KnockoutJS (https://github.com/dnagir/knockout-rails расширено -> https://github.com/KrzysztofMadejski/knockout-rails).
Я использую Rails '~> 3.2.12', звездочки (2.2.2).
Редактировать: я вставил код erb в комментарии ###, чтобы получить доступ к сгенерированному коду, пока файл coffeescript все еще компилируется:
###
<%= somefun() %>
###
Хотя я бы предложил использовать ответ @Semyon Perepelitsa, поскольку он создает файл сценария кофе, как его видит компилятор кофе.