如何使用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, "") } %>