javascript_include_tagを再帰的にする方法は?

あなたのことは知りませんが、長い間、私のjsファイルをバッチで接続することはできませんでした。

Railsにはpublic / javascriptsからのすべてのファイルを含む標準javascript_include_tagヘルパー(:all ,: recursive => true)があることを思い出させてください。 しかし、私はこのプロセスを制御したかった。 そして、ここに私が得たものがあります:

<%= javascript_include_tag collect_js("jquery-1.4.2", "jquery.*", "lib/*, "application") %> 


デフォルトでは、すべての* .jsファイルは指定されたテンプレートに再帰的に接続されますが、これは無効にできます。

 <%= javascript_include_tag collect_js("jquery-1.4.2", "jquery.*", "application", :without_recursion => true) %> 


catの下のヘルパーソースコード

 def collect_js(*patterns) options = patterns.extract_options!.stringify_keys recursion = !options["without_recursion"] # with recursion by default patterns.collect do |pattern| scripts = collect_asset_files(File.join(RAILS_ROOT, 'public', 'javascripts'), pattern + '.js') scripts = scripts + collect_asset_files(File.join(RAILS_ROOT, 'public', 'javascripts'), pattern, '**', '*.js') if recursion scripts end end 

頑張って

Source: https://habr.com/ru/post/J105662/


All Articles