2

我有一个 Rails 2 应用程序,我正在升级以使用捆绑程序。不幸的是,这个应用程序没有使用 active_record(但大量使用了 rails 的所有其他组件)。

以前,要让应用程序忽略 active_record,我的 environment.rb 文件中有以下内容:

config.frameworks -= [ :active_record ]

但是,似乎捆绑程序正在强制加载 active_record,这显然会引发错误,因为没有指定数据库。

我正在使用 rails 2.3.16(实际上尝试升级到它作为此过程的一部分)。

我搜索了一下,我找到的最接近的是这张公开票:

https://github.com/wycats/bundler/issues/143

我唯一的选择是显式修改 Gemfile.lock 并删除对 active_record 的所有引用吗?

4

1 回答 1

0
  • 检查您的config/application.rb 没有require 'rails/all'require "active_record/railtie"。相反,对于没有 ActiveRecord 的标准 Rails 设置,它应该只有以下要求:

    require File.expand_path('../boot', __FILE__)
    
    require "action_controller/railtie"
    require "action_mailer/railtie"
    require "active_resource/railtie"
    require "rails/test_unit/railtie"
    require "sprockets/railtie"
    
    # Auto-require default libraries and those for the current Rails environment. 
    Bundler.require :default, Rails.env
    
  • 如果在 中config/application.rb,您正在使用该config.generators部分,请确保它没有g.orm :active_record. 如果需要,您可以将其显式设置为,但是当完全省略nil时,这应该是默认值。g.orm

  • 可选,但在您的 中Gemfile,删除gem为您的数据库加载模块的行。例如,这可能是行gem "mysql"

(从这里

于 2013-02-06T06:53:26.843 回答