2010-02-18 5 views
0

Heroku는 모든 최신 앱을 최신 버전의 번들러 (0.9.4)로 업그레이드했습니다.Rails 2.3.5를 사용하여 번들러를 0.9.4로 업그레이드 할 때 문제가 발생했습니다.

README에있는 모든 지침 (업그레이드 지침 포함)을 따랐습니다. 그러나 일단 응용 프로그램을 업그레이드하면 더 이상 실행되지 않습니다. 예를 들어 나는 당신의 도움이 gist

감사의 지침에 따라 preinitializer.rb 있으며,

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을 다음과 같이

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

내 Gemfile이 얻을.

+0

심지어 heroku 지원과 함께 작업해도 알아낼 수 없었습니다. 나는 .gem 파일 형식으로 돌아 왔고 사업으로 복귀했다. 번들러 0.9가 프리 레일즈 3 앱과 잘 어울리는 지 확신하지 못합니다. – Jonathan

답변

2

어떻게 작동하는지는 묻지 말고 액션 팩의 의존성이나 경로 등의 문제가있는 것과 똑같은 문제가 있습니다.

나는 요점 모두가 들러 팀에 의해 참조 사용 : 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"보석을 설치해야합니다. 이것은 또 다른 사소한 성가심이었다. postgres를 설치하는 방법에 따라 pg_config를 찾는 것이 또 다른 골치 거리가 될 수 있습니다. 도움이 필요하면 알려주세요.

관련 문제