如何使用javascript_include_tag获取文件夹中的所有脚本

我想使用javascript_include_tag来使用递归来获取所有与视图相关的脚本,这些脚本位于public/javascripts/views

我正在尝试javascript_include_tag "/views", :recursive => true ,但无法添加任何脚本。

此致,Alexey Zakharov

根据javascript_include_tag的API文档 :

返回提供的每个源的html脚本标记。

您可以传入public / javascripts目录中存在的javascript文件的文件名(.js扩展名是可选的)以包含在当前页面中,或者您可以传递相对于文档根目录的完整路径。

您无法递归地包含目录中的所有文件。 但是,你总是可以写下一行:

 javascript_include_tag *Dir[Rails.root.join("public/javascripts/views/**/*.js")] 

一个简单的解决方案是创建一个新的js文件(进一步称为activate.js)并在那里包含文件。

 # < FolderWithFiles >/activate.js : //= require_tree . 

您可以使用

 <%= javascript_include_tag :all %> 

但这只有在脚本存储在您的脚本中时才有效

 RAILS_ROOT/public/javascripts 

目录

以下(未经优化的)代码应在rails 3.0或更高版本中运行

 <%= javascript_include_tag Dir[Rails.root.join("public/javascripts/views/**/*.js")].map { |s| s.sub(Rails.root.join("public/javascripts/").to_s, "") } %>