私は、スプロケットとtitのソースコードを掘り下げて、変数/バインディングをErb評価コンテキストに渡す方法を理解しようと多くの時間を費やしてきました。私がやろうとしていることは次のとおりです。リクエストごとに内容が変更されるJSファイルを提供する必要があります。変更される部分はDBに格納されているデータに依存するため、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
どうすればこれを行うことができますか?どんな助けでもいただければ幸いです。