2010-02-18 63 views
0

Heroku将其所有应用升级到最新版本的捆绑软件(0.9.4)。使用Rails将bundler升级到0.9.4的问题2.3.5

我遵循了README(包括升级说明)上的所有说明。但是,一旦我升级我的应用程序不再运行。例如我得到

NoMethodError (undefined method `acts_as_taggable_on' for #<Class:0x1b7f614>): 

我的Gemfile如下

source 'http://gemcutter.org' 
source 'http://gems.github.com' 

gem "rails", "2.3.5", :require => nil 

gem 'will_paginate', '2.3.11' 
gem 'jackdempsey-acts_as_commentable', :require => 'acts_as_commentable' 
gem 'acts-as-taggable-on' 

# Authorization 
gem 'authlogic' 
gem 'authlogic-oid', :require => 'authlogic_openid' 
gem 'ruby-openid', :require => 'openid' 

#Authentication 
gem 'cancan' 

gem 'gravtastic', '>= 2.1.0' 

# Exception Notification 
gem 'hoptoad_notifier' 

# Search (Note ties us to Postgres) 
gem 'texticle' 

gem 'pg' 

我的boot.rb,preinitializer.rb如在此gist

感谢您的帮助指导。

+0

即使使用heroku支持,也找不到它。我恢复到了.gem文件格式,并恢复了业务。我不确定bundler 0.9和pre Rails 3应用程序的兼容性 – Jonathan 2010-02-18 19:10:20

回答

2

请不要问我这是如何工作的,但我有同样的确切问题,似乎是失败的actionpack依赖或路径或什么的。

我用所有的要点被捆绑球队简称:http://gist.github.com/302406

但我调整我的配置/脚本的boot.rb此:

class Rails::Boot 
    def run 
    load_initializer 
    extend_environment 
    Rails::Initializer.run(:set_load_path) 
    end 

    def extend_environment 
    Rails::Initializer.class_eval do 
     old_load = instance_method(:load_gems) 
     define_method(:load_gems) do 
     old_load.bind(self).call 
     Bundler.require :default, RAILS_ENV   
     end 
    end 
    end 
end 

我不知道为什么我的配置变量是不同,但由于某种原因,他们是。我确定有人理解内部结构比我做得好一些可以解释它。

*对于heroku,您还必须安装postgres“pg”gem。这是另一个小小的烦恼。根据你安装postgres的方式,找到pg_config可能是另一个令人头疼的问题。让我知道你是否需要帮助。