禁用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
并用新的更正的旧Gemfile
replace旧的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。