我是RoR的新手,并且我正尝试在基于Rails 3.0.3的旧版应用程序上工作,一位前同事离开了我。我正在使用Ubuntu 18.04计算机。
不幸的是,我无法启动本地服务器。
用bundle install
安装了gems之后,我尝试迁移附加到该项目的示例数据库,但出现此错误:
$ rake db:migrate --trace
/var/lib/gems/2.5.0/gems/activesupport-3.0.3/lib/active_support/values/time_zone.rb:272: warning: circular argument reference - now
/var/lib/gems/2.5.0/gems/activesupport-3.0.3/lib/active_support/core_ext/string/output_safety.rb:60: warning: constant ::Fixnum is deprecated
rake aborted!
NameError: uninitialized constant ActiveSupport::LogSubscriber
/var/lib/gems/2.5.0/gems/activerecord-3.0.3/lib/active_record/log_subscriber.rb:2:in `<module:ActiveRecord>'
/var/lib/gems/2.5.0/gems/activerecord-3.0.3/lib/active_record/log_subscriber.rb:1:in `<top (required)>'
/var/lib/gems/2.5.0/gems/activerecord-3.0.3/lib/active_record/base.rb:24:in `<top (required)>'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic/authenticates_many/base.rb:52:in `require'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic/authenticates_many/base.rb:52:in `<module:AuthenticatesMany>'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic/authenticates_many/base.rb:18:in `<module:Authlogic>'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic/authenticates_many/base.rb:1:in `<top (required)>'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic.rb:60:in `require'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic.rb:60:in `block in <top (required)>'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic.rb:59:in `each'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic.rb:59:in `<top (required)>'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:81:in `require'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:81:in `block (2 levels) in require'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:76:in `each'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:76:in `block in require'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:65:in `each'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:65:in `require'
/usr/local/lib/site_ruby/2.5.0/bundler.rb:114:in `require'
/home/devuser/repos/myapp/config/application.rb:7:in `<top (required)>'
/usr/local/lib/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/usr/local/lib/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/home/devuser/repos/myapp/Rakefile:4:in `<top (required)>'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/rake_module.rb:29:in `load'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/rake_module.rb:29:in `load_rakefile'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:703:in `raw_load_rakefile'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:104:in `block in load_rakefile'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:103:in `load_rakefile'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:82:in `block in run'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:80:in `run'
/var/lib/gems/2.5.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/rake:23:in `load'
/usr/local/bin/rake:23:in `<main>'
Caused by:
NameError: uninitialized constant LogSubscriber
/var/lib/gems/2.5.0/gems/activerecord-3.0.3/lib/active_record/log_subscriber.rb:2:in `<module:ActiveRecord>'
/var/lib/gems/2.5.0/gems/activerecord-3.0.3/lib/active_record/log_subscriber.rb:1:in `<top (required)>'
/var/lib/gems/2.5.0/gems/activerecord-3.0.3/lib/active_record/base.rb:24:in `<top (required)>'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic/authenticates_many/base.rb:52:in `require'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic/authenticates_many/base.rb:52:in `<module:AuthenticatesMany>'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic/authenticates_many/base.rb:18:in `<module:Authlogic>'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic/authenticates_many/base.rb:1:in `<top (required)>'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic.rb:60:in `require'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic.rb:60:in `block in <top (required)>'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic.rb:59:in `each'
/var/lib/gems/2.5.0/gems/authlogic-3.2.0/lib/authlogic.rb:59:in `<top (required)>'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:81:in `require'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:81:in `block (2 levels) in require'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:76:in `each'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:76:in `block in require'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:65:in `each'
/usr/local/lib/site_ruby/2.5.0/bundler/runtime.rb:65:in `require'
/usr/local/lib/site_ruby/2.5.0/bundler.rb:114:in `require'
/home/devuser/repos/myapp/config/application.rb:7:in `<top (required)>'
/usr/local/lib/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/usr/local/lib/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/home/devuser/repos/myapp/Rakefile:4:in `<top (required)>'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/rake_module.rb:29:in `load'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/rake_module.rb:29:in `load_rakefile'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:703:in `raw_load_rakefile'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:104:in `block in load_rakefile'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:103:in `load_rakefile'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:82:in `block in run'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
/var/lib/gems/2.5.0/gems/rake-13.0.1/lib/rake/application.rb:80:in `run'
/var/lib/gems/2.5.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/rake:23:in `load'
/usr/local/bin/rake:23:in `<main>'
问题是每条rails
或rake
命令都会触发此错误。我尝试使用其他答案中建议的诸如bundle exec rake
之类的命令。
尝试跟踪消息,问题似乎出现在Rakefile
和config/application.rb
Rakefile
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require File.expand_path('../config/application', __FILE__)
require 'rake'
Myapp::Application.load_tasks
config/application.rb
require File.expand_path('../boot', __FILE__)
require 'rails/all'
# If you have a Gemfile, require the gems listed there, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env) if defined?(Bundler)
module Myapp
class Application < Rails::Application
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/extras)
# Only load the plugins named here, in the order given (default is alphabetical).
# :all can be used as a placeholder for all plugins not explicitly named.
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
# Activate observers that should always be running.
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
# config.time_zone = 'Central Time (US & Canada)'
config.local_zone = 'Eastern Time (US & Canada)'
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
# config.i18n.default_locale = :de
# JavaScript files you want as :defaults (application.js is always included).
# config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
# Configure the default encoding used in templates for Ruby 1.9.
config.encoding = "utf-8"
# Configure sensitive parameters which will be filtered from the log file.
config.filter_parameters += [:password, :password_confirmation]
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
include ActionView::Helpers::RawOutputHelper
raw %(<span class="field_with_errors">#{html_tag}</span>)
end
end
end