在Rails 4中包含gem的资产

时间:2014-12-24 03:56:32

标签: ruby-on-rails gem assets

我创建了一个gem(不是引擎),里面有一些js文件:

lib/assets/javascripts/mygem.js

在我的应用程序中,我想将这个js包含到application.js中:

# app/assets/javascripts/application.js

// require mygem  # DOESN'T WORK

这不起作用。

是否可以包含宝石的资产?或者我应该为gem编写一个生成器,它将所有资产从gem复制到应用程序资产文件夹中。

1 个答案:

答案 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