我想使用javascript_include_tag
使用遞歸獲取所有與視圖相關的腳本,該腳本放置在public/javascripts/views
中。如何使用javascript_include_tag獲取文件夾中的所有腳本
我在嘗試javascript_include_tag "/views", :recursive => true
,但未能添加任何腳本。
問候, 阿列克謝·扎哈羅夫
我想使用javascript_include_tag
使用遞歸獲取所有與視圖相關的腳本,該腳本放置在public/javascripts/views
中。如何使用javascript_include_tag獲取文件夾中的所有腳本
我在嘗試javascript_include_tag "/views", :recursive => true
,但未能添加任何腳本。
問候, 阿列克謝·扎哈羅夫
據javascript_include_tag
的API documentation:
返回每個所提供的源HTML腳本代碼。
您可以傳入存在於public/javascripts目錄中的JavaScript文件的文件名(.js擴展名是可選的),以便包含在當前頁面中,或者您可以傳遞相對於文檔根目錄的完整路徑。
您不能遞歸地在您的目錄中包含所有文件。但是,你總是可以寫類似的下一行:
javascript_include_tag *Dir[Rails.root.join("public/javascripts/views/**/*.js")]
您可以使用
<%= 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, "") } %>
這對我來說非常合適。非常感謝。我的.js文件出現在javascripts/controls文件夾下,您可以在此文件夾下添加所有文件 – rahoolm 2014-01-12 10:59:48
,祝您工作愉快! – 2014-01-14 18:23:40
一個簡單的解決方案是創建一個新的js文件(又稱爲activate.js)並在其中包含文件。
< FolderWithFiles> /activate.js://= require_tree .
您與錯誤提供了工作方法。它創建文件的絕對URL。這裏修改後的版本: def collect_javascript_files(path) Dir [config.javascripts_dir + File :: SEPARATOR + path] .map {| s | s.sub(config.assets_dir,「」)} end – 2010-09-15 07:03:10
你如何得到這個工作?我把'helper_method:collect_js_files'和你的函數放在application_controller.rb中,但是當我在我的html.haml中調用'= javascript_include_tag collect_js_files('public/javascripts/folder')'時,它什麼都不做(空行在生成的html中) 這將是非常有用的,如果它的工作,謝謝! – butterywombat 2011-02-02 14:48:33
它不起作用! – Lev 2016-09-14 10:28:36