Rails 3.0.3-'rake'或'rails'命令生成错误

时间:2020-06-10 17:59:38

标签: ruby-on-rails rake ubuntu-18.04

我是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>'

问题是每条railsrake命令都会触发此错误。我尝试使用其他答案中建议的诸如bundle exec rake之类的命令。

尝试跟踪消息,问题似乎出现在Rakefileconfig/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

0 个答案:

没有答案