5

アプリケーションをVPSにデプロイした後、次のエラーが発生します。ActiveAdminはローカル開発環境で正常に動作しますが、capistranoを使用してデプロイすると、gemがインストールされていないように見えますか?

E, [2013-03-14T01:27:04.901577 #24972] ERROR -- : uninitialized constant ActiveAdmin (NameError)
/home/deployer/apps/papaya/releases/20130314052558/config/initializers/active_admin.rb:1:in `<top (required)>'

私の宝石ファイル

source 'https://rubygems.org'

gem 'rails', '3.2.11'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'pg'
gem 'bootstrap-sass'
gem 'font-awesome-sass-rails'
# gem 'acts_as_tree', :git => 'git://github.com/amerine/acts_as_tree.git'
gem 'closure_tree'
gem 'kaminari'
gem 'friendly_id'
gem 'slim'
gem 'gmaps4rails'
gem 'devise'
gem 'omniauth'
gem 'oauth2'
gem 'omniauth-facebook'
gem 'omniauth-twitter'
gem 'simple_form'
gem 'pg_search'
gem 'stamp'
gem 'acts-as-taggable-on', '~> 2.3.1'
gem 'rmagick'
gem 'carrierwave'
gem 'select2-rails'
# gem 'roo'
gem 'activeadmin'
gem "meta_search",    '>= 1.1.0.pre'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby
  gem 'uglifier', '>= 1.0.3'
  gem 'compass-rails'
  gem 'turbo-sprockets-rails3'
end

私は問題なくコンソールを実行することができ、activeadmin

deployer@pareto:~/apps/papaya/current$ RAILS_ENV=production bundle exec irb
irb(main):001:0> require 'activeadmin'
=> true
irb(main):002:0>
4

7 に答える 7

12

何が起こっていますか?

ActiveAdminまたはのような定数を定義するgemが必要な場合ActiveAdmin::Comment、その定数の定義中に何らかの理由で問題が発生した場合、Bundlerはその定数を未定義のままにし、例外を再発生させません。

考えられる原因

ActiveAdmin動作するJavaScriptランタイムに依存しExecJS、必要です。定数の定義中にこのようなエラーがスローされます。ExecJSExecJSActiveAdmin

ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.

この場合、Node.jsをインストールするだけです。sudo apt-get install nodejs

このような問題をデバッグする方法

  1. Railsコンソールを実行してみてください。bundle exec rails console
  2. それが失敗した場合は、問題のあるgemを手動で内部に要求irbし、その依存関係を処理してみてください。
  3. 定義する必要があるが定義されていない場合は、gemまたはパーツを要求します。手動でRubygemsが必要な場合、問題を説明する例外をスローします。
  4. 例外を処理し、問題が解決するまで修正します。
于 2015-03-18T19:11:58.013 に答える
9

Railsサーバーを再起動してみてください。再起動後に解決した同様の問題がありました。

于 2013-09-29T17:04:28.293 に答える
7

require 'activeadmin'active_admin.rb初期化子にを追加しましたが、機能します。

于 2013-04-22T11:02:20.363 に答える
1

おそらく、本番環境でバンドルインストールを実行していない可能性があります。

bundle install本番環境で実行してみてください

于 2013-03-14T06:13:24.680 に答える
0

@alexBrandのソリューションは私にはうまくいきませんでした。

代わりにrequire 'activeadmin/cancan_adapter'、構成ブロック内に追加することでうまくいきました。

于 2014-04-01T15:49:36.073 に答える
0

(gem'therubyracer'、platforms::ruby)gemをgem-fileからコメント解除してから、bundle..itが機能します

于 2016-04-19T06:05:05.100 に答える
0

に移動してroutes削除し、active_admin routes実行するだけですrails destroy active_admin:install

于 2018-07-25T16:47:24.797 に答える