Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.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
Ruby on rails 我需要从rails应用程序中获取gems完整路径_Ruby On Rails_Bundler - Fatal编程技术网

Ruby on rails 我需要从rails应用程序中获取gems完整路径

Ruby on rails 我需要从rails应用程序中获取gems完整路径,ruby-on-rails,bundler,Ruby On Rails,Bundler,我正在运行一个rails 3.1应用程序,它使用一个名为“awesome_engine”的引擎。Awesome_engine有一些我需要了解的资源,但compass的加载路径不包括引擎资源路径。我的理解是它应该在那里,但它不是 我需要添加它,所以我修改了config/compass.rb以包含compass的配置设置。问题是,这就是我如何获得所需gem的路径: begin gem_root = $LOAD_PATH.find{|i| i.include?('/awesome_engine/'

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

我需要添加它,所以我修改了config/compass.rb以包含compass的配置设置。问题是,这就是我如何获得所需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的完整路径。有人吗?

Gem.loaded\u规格正是我想要的:

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"