Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails资产管道从控制器和方法加载JavaScript_Javascript_Ruby On Rails - Fatal编程技术网

Rails资产管道从控制器和方法加载JavaScript

Rails资产管道从控制器和方法加载JavaScript,javascript,ruby-on-rails,Javascript,Ruby On Rails,我想在代码中保持干爽,所以我想在Java脚本文件与控制器或/和方法匹配且.js存在时自动加载它。我把这个添加到我的布局中 = javascript_include_tag params[:controller] if ::Rails.application.assets.find_asset("#{params[:controller]}.js") = javascript_include_tag "#{params[:controller]}/#{params[:action]}" if ::

我想在代码中保持干爽,所以我想在Java脚本文件与控制器或/和方法匹配且
.js
存在时自动加载它。我把这个添加到我的布局中

= javascript_include_tag params[:controller] if ::Rails.application.assets.find_asset("#{params[:controller]}.js")
= javascript_include_tag "#{params[:controller]}/#{params[:action]}" if ::Rails.application.assets.find_asset("#{params[:controller]}/#{params[:action]}.js")
现在,当我添加
javascripts/my_controller/my_method.js时,它会自动加载,这很好

遗憾的是,我必须添加另一行代码来预编译资产,否则会抛出一个错误(这表示我必须预编译我的
.js
文件),我没有找到任何方法来解决这个问题

Rails.application.config.assets.precompile += %w( orders/checkout.js )
有没有人有办法避免在这个配置中手动添加元素


注意:我已经尝试使用
require\u树。
它只是加载了每个页面上的所有文件,在我的情况下不起作用。

您可以使用通配符允许预编译视图中包含的所有JS文件:


config.assets.precompile您刚刚创造了我的一天;)