资产预编译时资产gem抛出文件未找到错误

时间:2013-09-20 11:29:58

标签: ruby-on-rails gem

我用jquery简单常见问题创建了一个资产宝石。 https://github.com/MavenHive/jquery_simplefaq

我已将以下行添加到我的application.js文件中。

//= require simplefaq

当我运行资产时:在我的本地预编译我得到以下错误。

rake aborted!
couldn't find file 'simplefaq'

为了解决这个问题,我将gem克隆到我的本地机器并使用路径引用它。

gem 'jquery_simplefaq', :path => '/path/to/jquery_simplefaq'

这非常有效。更改此选项以使用本地gem存储库的git url会引发找不到文件的错误。

gem 'jquery_simplefaq', :git => 'file:///path/to/jquery_simplefaq'

使用:path工作,并且:git抛出错误。我错过了什么?

更新

错误消息

/home/user/.rvm/rubies/ruby-1.9.3-p194-perf/bin/ruby /home/user/.rvm/gems/ruby-1.9.3-p194-perf@gemset2/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
couldn't find file 'simplefaq'
  (in /home/user/code-repo/proj/webapp/app/assets/javascripts/application.js:27)

您可以通过将gem添加到任何rails 3 app来复制此错误。

gem 'jquery_simplefaq', :git => 'git://github.com/MavenHive/jquery_simplefaq'

将以下行添加到您的application.js。

//= require simplefaq

运行资产:预编译

1 个答案:

答案 0 :(得分:2)

所以,我分叉你的存储库并使其工作。你的gemspec文件中有一点混淆。

目前,你有这个:

# jquery_simplefaq.gemspec
spec.files = `git ls-files`.split($/)
# ...
spec.require_paths = Dir["{lib,vendor}/**/*"] + ["README.md"]

将其更改为:

spec.files = Dir["{lib,vendor}/**/*"] + ["README.md"]
# ...
spec.require_paths = ["lib"]

之后,预编译应该可以正常工作