Path 如何编辑宝石,然后在Heroku上的Sinatra应用程序中使用该版本

Path 如何编辑宝石,然后在Heroku上的Sinatra应用程序中使用该版本,path,heroku,sinatra,paperclip,gemfile,Path,Heroku,Sinatra,Paperclip,Gemfile,我正试图在部署在Heroku上的Sinatra应用程序中加载dm回形针gem的编辑版本。我在这里下载了编辑过的gem 在我的Gemfile中,我为dm-paperclip添加了一个:path参数 gem 'dm-paperclip', :path => "#{Dir.pwd}/gems/ladicha-dm-paperclip-8ff8d23" 当我推到Heroku时,捆绑程序运行时没有错误。关于dm回形针gem heroku的捆绑机报告 Using dm-paperclip (2.4.

我正试图在部署在Heroku上的Sinatra应用程序中加载dm回形针gem的编辑版本。我在这里下载了编辑过的gem

在我的Gemfile中,我为dm-paperclip添加了一个:path参数

gem 'dm-paperclip', :path => "#{Dir.pwd}/gems/ladicha-dm-paperclip-8ff8d23"
当我推到Heroku时,捆绑程序运行时没有错误。关于dm回形针gem heroku的捆绑机报告

Using dm-paperclip (2.4.1) from source at gems/ladicha-dm-paperclip-8ff8d23
应用程序随后被部署,但崩溃。我相信日志中的相关行是

 <internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- dm-paperclip (LoadError)
:29:in'require':没有这样的文件要加载--dm-paperclip(加载错误)
我指的是:指向“dm paperclip.gempec”位置的路径,我认为这是正确的。有人知道我做错了什么吗?如果你需要更多的信息,我很乐意提供


谢谢。

也许我回避了在heroku上使用:路径宝石的问题,但这对你有用吗

gem 'dm-paperclip', :git => 'https://github.com/ladicha/dm-paperclip.git'

至于为什么它不起作用,我肯定会小心在一个文件中使用
Dir.pwd
File.dirname(\uu File\uuu)可能是一个可行的选择,但它仍然比git选项更脏。

不,你没有回避这个问题,我同意使用git方法更好。这是一个学习过程,我后来意识到“正确”的方法是直接链接到git fork。阿拉斯,我仍然有应用程序崩溃与相同的错误。不知道交易是什么。我通过切换到运行ruby 1.8.7的竹堆来解决这个问题,就像我在开发中使用的一样。Heroku和dm回形针现在似乎在一起。我认为最终的解决方案是抛弃dm datamapper,因为它已经两年没有被使用过了。谢谢你,马特!你认为我的全部问题是我用Ruby 1.8.7开发了这个应用程序,并在Heroku上推到了一个运行1.9.2的堆栈吗?@three我可能会切换到carrierwave。@wuliwong,不,不认为1.8和1.9之间的差异在这种情况下很重要。实际上可能是1.8/1.9的差异。1.9不再在加载路径中包含“.”。如果dm曲别针中的代码假定是,则可能是错误源。