Désactiver ActiveRecord pour Rails 4

Je veux désactiver ActiveRecord dans Rails 4. J’ai fait ce qui suit dans 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 

Par j’ai une erreur de

 /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 # (NoMethodError) 

Si vous créez une nouvelle application, vous pouvez utiliser -O pour ignorer ActiveRecord:

 rails new my_app -O 

Pour les applications existantes:

1. Supprimez les gems de l’adaptateur de firebase database de votre Gemfile (mysql2, sqlite3, etc.)

2. Changez votre config/application.rb

Supprimez require 'rails/all line et exigez les frameworks que vous souhaitez utiliser, par exemple:

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

Supprimez config.active_record.raise_in_transactional_callbacks = true de config/application.rb

3. Supprimez votre fichier config/database.yml , db/schema.rb et migrations (le cas échéant)

4. Supprimer la vérification de la migration dans test/test_helper.rb

5. Supprimez toute configuration ActiveRecord de vos fichiers config/environments (c’est ce qui cause votre erreur)

C’est tout ce que vous devez faire pour une application Rails vide. Si vous rencontrez des problèmes causés par votre code existant, la trace de la stack doit vous donner suffisamment d’informations sur ce que vous devez changer. Vous pourriez par exemple avoir une configuration ActiveRecord dans vos initialiseurs.

Salut c’est ce que les rails par défaut new_app -O donne

 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" 

dans votre config / application.rb

De plus, il ne contient ni database.yml ni NO db / migrate / * et schema.rb

Comme il s’agit toujours du premier succès lors de la recherche de Google pour la désactivation d’un enregistrement actif pour Rails 5, j’appendai ceci:

Pour les rails 5

Faites toutes les étapes dans @mechanicalfish, mais supprimez également la ligne

 Rails.application.config.active_record.belongs_to_required_by_default = true 

de

 config/initializers/new_framework_defaults.rb 

Pour ceux qui utilisent la gem rails-api, vous pouvez rencontrer une erreur similaire lorsque vous utilisez l’indicateur --skip-active-record lors de l’ rails-api new my_api . Le correctif actuel (jusqu’à ce qu’une nouvelle version corrigée de la gem soit publiée) consiste à éditer votre gem de rails-api pour avoir cette validation . Utilisez bundle open et remplacez l’ancien Gemfile par le nouveau corrigé. Relancez et vous devriez être tous ensemble.

Pour désactiver ActiveRecord dans Rails 4.2, vous pouvez créer config / initializers / middleware.rb

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

Voir le middleware de rake terminal

Pour Rails 5:

Si vous générez une nouvelle application

Utilisez l’option --skip-active-record pour générer une application sans firebase database:

rails new myApp --skip-active-record

Notez le trait d’union supplémentaire ‘-‘ par opposition aux versions précédentes de Rails.

Pour Ruby On Rails version 5.1.x

 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 "action_cable/engine" require "sprockets/railtie" require "rails/test_unit/railtie" 

For Rails Plugins (ou gems) avec une application spec/dummy

Lorsque votre application rails vit dans spec/dummy et que vous démarrez votre serveur à partir du répertoire plugin-root. Vous pourriez toujours avoir l’erreur suivante:

 Cannot load `Rails.application.database_configuration`: Could not load database configuration. No such file - ["config/database.yml"] 

Pour éviter cela, supprimez require rails/all dans le fichier bin/rails et exigez des frameworks que vous souhaitez utiliser, par exemple:

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