加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – ActiveAdmin未初始化的常量

发布时间:2020-12-17 01:55:07 所属栏目:百科 来源:网络整理
导读:将应用程序部署到VPS后,出现以下错误. ActiveAdmin在我的本地开发环境中运行良好,但是一旦我使用capistrano部署,看起来好像没有安装gem? E,[2013-03-14T01:27:04.901577 #24972] ERROR -- : uninitialized constant ActiveAdmin (NameError)/home/deployer/
将应用程序部署到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>

解决方法

发生了什么?

当需要定义常量的gem时,比如ActiveAdmin或ActiveAdmin :: Comment,如果由于某种原因在定义该常量时出现问题,Bundler会将该常量保留为未定义且不会再次引发异常.

可能的原因

ActiveAdmin依赖于ExecJS,ExecJS需要一个有效的JavaScript运行时.在定义ActiveAdmin常量期间,ExecJS会抛出这样的错误.

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

如何调试这样的问题

>尝试运行Rails控制台.捆绑exec rails console>如果失败,请尝试在irb中手动需要有问题的gem并完成其依赖项.>需要宝石或部分,如果它应该被定义但不是.当需要手动Rubygems抛出描述问题的异常时.>解决异常并修复它们,直到问题得到解决.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读