【问题标题】:I need a gems full path from inside a rails app我需要一个来自 Rails 应用程序的 gems 完整路径
【发布时间】:2012-03-16 19:43:02
【问题描述】:

我正在运行一个使用名为“awesome_engine”的引擎的 rails 3.1 应用程序。 Awesome_engine 有一些我需要了解的资产,但 compass 的加载路径不包括引擎资产路径。我的理解是它应该在那里,但它不是。

我需要添加它,所以我修改了我的 config/compass.rb 以包含 compass 的 additional_import_paths 配置设置。问题是,这就是我获得所需 gem 的路径:

begin
  gem_root = $LOAD_PATH.find{|i| i.include?('/awesome_engine/')}.gsub(/awesome_engine\/.*/, 'awesome_engine/app/assets/stylesheets/scss')
  additional_import_paths = [gem_root]
rescue
end

这可行,但必须有一种更简单/更好/更清洁的方法来获取 gem 的完整路径。有人吗?

【问题讨论】:

    标签: ruby-on-rails bundler


    【解决方案1】:

    Gem.loaded_specs 是我想要的:

    ruby-1.9.2-p290 :001 > Gem.loaded_specs['awesome_engine'].full_gem_path
     => "/Users/younker/dev/engines/awesome_engine" 
    
    ruby-1.9.2-p290 :002 > Gem.loaded_specs['rails'].full_gem_path
     => "/Users/younker/.rvm/gems/ruby-1.9.2-p290@foobar/gems/rails-3.1.3"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 2010-12-01
      • 1970-01-01
      相关资源
      最近更新 更多