我创建了一个gem(不是引擎),里面有一些js文件:
lib/assets/javascripts/mygem.js
在我的应用程序中,我想将这个js包含到application.js中:
# app/assets/javascripts/application.js
// require mygem # DOESN'T WORK
这不起作用。
是否可以包含宝石的资产?或者我应该为gem编写一个生成器,它将所有资产从gem复制到应用程序资产文件夹中。
答案 0 :(得分:5)
将引擎类添加到gem并在gem中需要它:
# lib/mygem/rails/engine.rb
module Mygem
module Rails
class Engine < ::Rails::Engine
end
end
end
# lib/mygem.rb:
module Mygem
require 'mygem/rails/engine'
end
现在,应用程序中提供了来自gem的资产:
的Gemfile:
gem 'mygem'
应用程序/资产/ Javascript角/ application.js中
//= require mygem
了解如何向您的宝石添加资产:
http://guides.rubyonrails.org/asset_pipeline.html#adding-assets-to-your-gems