0

Heroku は、すべてのアプリを最新バージョンのバンドラー (0.9.4) にアップグレードしました。

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は、この要点で指示されているとおりです

ご協力いただきありがとうございます。

4

1 に答える 1

2

これがどのように機能するのか私に尋ねないでください。しかし、アクションパックの依存関係やパスなどで失敗しているように見えるものとまったく同じ問題がありました。

バンドラー チームが参照しているすべての要点を使用しました: http://gist.github.com/302406

しかし、config/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 を見つけるのが別の頭痛の種になる場合があります。これについてサポートが必要な場合はお知らせください。

于 2010-02-21T12:58:10.747 に答える