禁用Rails的ActiveRecord 4

我想在Rails 4中禁用ActiveRecord。我在config/application.rb做了以下操作

 require File.expand_path('../boot', __FILE__) # require 'rails/all' -- commented require "action_controller/railtie" require "action_mailer/railtie" #require "active_resource/railtie" no need #require "rails/test_unit/railtie" no need #require "sprockets/railtie" no need # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. Bundler.require(:default, Rails.env) module MyApp class Application < Rails::Application config.app_middleware.delete "ActiveRecord::ConnectionAdapters::ConnectionManagement" end end 

由于我有一个错误

 /home/alex/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/railtie/configuration.rb:95:in method_missing: undefined method active_record for #<Rails::Application::Configuration:0x00000002005c38> (NoMethodError) 

如果你正在创build一个新的应用程序,你可以使用-O来跳过ActiveRecord:

 rails new my_app -O 

对于现有应用:

1.从您的Gemfile(mysql2,sqlite3等)中删除数据库适配器gem

2.更改你的config/application.rb

删除require 'rails/all line并且需要你想要使用的框架,例如:

 require "action_controller/railtie" require "action_mailer/railtie" require "sprockets/railtie" require "rails/test_unit/railtie" 

3.删除你的config/database.yml文件, db/schema.rb和migrations(如果有的话)

4.删除test/test_helper.rb迁移检查

5.从config/environments文件中删除任何ActiveRecordconfiguration(这是什么导致你的错误)

这是所有你需要做一个空的Rails应用程序。 如果您遇到由您的现有代码引起的问题,堆栈跟踪应该能够为您提供有关需要更改的信息。 例如,你可能在你的初始化器中有一些ActiveRecordconfiguration。

嗨,这是什么新的默认导轨new_app -O给

 require "rails" # Pick the frameworks you want: require "active_model/railtie" require "active_job/railtie" # require "active_record/railtie" require "action_controller/railtie" require "action_mailer/railtie" require "action_view/railtie" require "sprockets/railtie" require "rails/test_unit/railtie" 

在你的config / application.rb里面

此外,它没有database.yml和NO db / migrate / *schema.rb

由于这仍然是search谷歌禁用Rails 5的活跃logging的第一击,我将在这里添加:

对于Rails 5

@mechanicalfish回答所有的步骤,但也删除线

 Rails.application.config.active_record.belongs_to_required_by_default = true 

 config/initializers/new_framework_defaults.rb 

对于使用rails-api gem的用户 ,在执行rails-api new my_api时,使用--skip-active-record标志时可能会遇到类似的错误。 目前的修复(直到发布一个新的修正版本的gem)是编辑你的rails-api gem来做这个提交 。 使用bundle open并用新的更正的旧Gemfilereplace旧的Gemfile 。 重新运行,你应该全部设置。

要在Rails 4.2中禁用ActiveRecord,你可以创buildconfig / initializers / middleware.rb

 Rails.application.middleware.tap do |middleware| middleware.delete ActiveRecord::Migration::CheckPending middleware.delete ActiveRecord::ConnectionAdapters::ConnectionManagement middleware.delete ActiveRecord::QueryCache end 

查看terminal耙中间件

对于Rails 5:

如果你正在生成一个新的应用程序

使用--skip-active-record选项来生成没有数据库的应用程序:

rails new myApp --skip-active-record

注意额外的连字符“ – ”,而不是以前版本的Rails。