Я провел много времени, копаясь в исходном коде sprockets и tit, пытаясь выяснить, как передать переменные/привязки в контекст оценки Erb. Вот что я пытаюсь сделать: мне нужно обслуживать файл JS, содержимое которого изменяется для каждого запроса. Части, которые изменяются, зависят от данных, хранящихся в БД, поэтому необходимо направлять запросы через приложение Rails и передавать переменные/привязки. Кроме того, файл JS использует директивы require
для вставки других файлов JS, поэтому необходимо использовать звездочки.
Вот фрагмент кода, который не работает:
Файл контроллера:
def ever_changing_js
@foobars = Foobar.all
MyApp::Application.assets.instance_eval do
def foobars
@foobars
end
end
render :text => MyApp::Application.assets.find_asset('ever_changing.js').to_s, :content_type => "application/javascript"
end
ever_changing.js:
//= require file1.js
//= require file2.js
// Some code that uses @foobars
Как я могу это сделать? Любая помощь будет оценена по достоинству.