Rails - 在application.js中需要它之前如何检查js文件是否存在?
问题描述:
我分叉的宝石(https://github.com/mbulat/plutus),它有jquery.ui.datepicker的要求。 rails-jquery-ui gem 5.0将文件夹名称更改为jquery-ui(之前的jquery.ui)。因此,这将返回一个Sprockets :: FileNotFound,它依赖于rails-jquery-ui 5.0。Rails - 在application.js中需要它之前如何检查js文件是否存在?
如何在plutus application.js中有条件地包含jquery.ui.datepicker或jquery-ui/datepicker,以便该宝石可供具有任何宝石版本的人员使用。
我的方法是正确的还是有更好的方法来做到这一点?
答
您可以将application.js
重命名为application.js.erb
,并在其中包含任何ruby
条件。
一旦其重命名为application.js.erb
你可以写类似以下内容:
<% if Jquery::Ui::Rails::VERSION >= '5.0' %>
//= require jquery-ui/datepicker
<% else %>
//= require jquery.ui.datepicker
<% end %>
我没有检查实际的文件名或文件夹结构。以上代码只是一个伪代码,可以根据您的需要/要求进行调整。